Práce s JSON objekty v AJAX Success

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Práce s JSON objekty v AJAX Success
« kdy: 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?
« Poslední změna: 28. 03. 2019, 15:17:09 od Petr Krčmář »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:práce s JSON objekty v AJAX Success
« Odpověď #1 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:práce s JSON objekty v AJAX Success
« Odpověď #2 kdy: 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.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:práce s JSON objekty v AJAX Success
« Odpověď #3 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:práce s JSON objekty v AJAX Success
« Odpověď #4 kdy: 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.


gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:práce s JSON objekty v AJAX Success
« Odpověď #5 kdy: 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.

Re:Práce s JSON objekty v AJAX Success
« Odpověď #6 kdy: 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.

Re:práce s JSON objekty v AJAX Success
« Odpověď #7 kdy: 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.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:práce s JSON objekty v AJAX Success
« Odpověď #8 kdy: 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.