Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN 28. 03. 2019, 11:36:53

Název: Práce s JSON objekty v AJAX Success
Přispěvatel: ZAJDAN 28. 03. 2019, 11:36:53
Ahoj,
server mi vrací JSON array
[{Letter: "", Commission: "6", Status: "", DeliveryDate: "", message: "EXISTUJE"}]

v Ajax success bych potřeboval podmínku něco jako:
Kód: [Vybrat]
success: function(json) {

if(json['message'] == EXITUJE ){ ...}
}
bude potřeba ten JSON nejprve parsovat?
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: ZAJDAN 28. 03. 2019, 12:13:57
použil jsem
Kód: [Vybrat]
for(var i = 0; i < json.length; i++) {
    if (json[i].message == 'EXISTUJE!!!') {...}

funguje, ale pokud někdo zná lepší řešení, nechám se poučit
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: Filip Jirsák 28. 03. 2019, 12:18:55
Jediné rozumné řešení je ten JSON parsovat. Předpokládám, že jste v prohlížeči, takže stačí zavolat JSON.parse(json) – takže o nějakém řešení pomocí regexpů nebo vyhledávání ani nemá smysl uvažovat.

Druhá věc je – opravdu to píšete v čistém JavaScriptu, nepoužíváte tam žádnou knihovnu, třeba jen pro ta AJAXová volání? Snad každá knihovna ten jeden řádek pro parsování JSONu zavolá za vás.
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: ZAJDAN 28. 03. 2019, 12:35:32
použito je jQuery
v AJAXU mám dataType: "json",
proto předpokládám, že nebude potřeba parsovat
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: Filip Jirsák 28. 03. 2019, 13:10:30
Pokud je to jQuery a použijete getJSON(), dataType=json nebo server posílá správný mime-type souboru, jQuery odpověď parsuje za vás a dá vám už hotový objekt.
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: gill 28. 03. 2019, 15:48:27
Druhá věc je – opravdu to píšete v čistém JavaScriptu, nepoužíváte tam žádnou knihovnu, třeba jen pro ta AJAXová volání? Snad každá knihovna ten jeden řádek pro parsování JSONu zavolá za vás.

lepsi pouzivat Fetch API. Uz je podporovane ve vsech prohlizecich.
Název: Re:Práce s JSON objekty v AJAX Success
Přispěvatel: Tomas-T 28. 03. 2019, 16:22:28
V MSIE podpora není (a zákazníci MSIE stále používají).
A pro POST request je vytvoření .fetch() o něco složitější než $.post() v jQuery.
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: Filip Jirsák 28. 03. 2019, 17:20:03
lepsi pouzivat Fetch API. Uz je podporovane ve vsech prohlizecich.

I Fetch API pomocí response.json() vrátí rozparsovaný objekt.
Název: Re:práce s JSON objekty v AJAX Success
Přispěvatel: BoneFlute 28. 03. 2019, 22:38:05
použil jsem
Kód: [Vybrat]
for(var i = 0; i < json.length; i++) {
    if (json[i].message == 'EXISTUJE!!!') {...}

funguje, ale pokud někdo zná lepší řešení, nechám se poučit

Hlídej si, aby ti server vracel správnou hlavičku, a pak ti to většina knihoven zohlední. Takže parsovat netřeba.

Tak ja to děláš je cca cajk.

Nejrychlejší způsob, jak zjistit, co ti přiteklo v tom success je si to vypsat na konzolu. Hned vidíš, jestli je to text, nebo struktura.