xml vs json

Hvilke fordeler er det å bruke xml, og hvilke fordeler er det å bruke json når man lager sånn api-opplegg.

Det kommer helt an på hva som skal serveres, og hvordan dette skal konsumeres.

Generelt sett er JSON enklere å generere og enklere å konvertere dersom du jobber med Javascript, og det tar også generelt sett mye mindre plass når det skal sendes.

Et kjent sitat sier

“XML is like violence. If it doesn’t solve your problem, you’re not using enough of it.”

Som er helt korrekt, ofte med XML må man legge til attributer og ræl for å få det slik man ønsker, så er det attributer med @ og å forsøke å konsumere dette med XPath og annen elendighet.

Jeg ville holdt meg til JSON, eventuelt JSONP dersom du tillater X-domain, forøvrig er jo også YAML et alternativ, dog et dårligere alternativ enn JSON etter min mening.

Det eneste jeg egentlig har i mot JSON er at det var Crockford som hadde ideen!

What are the pros and cons of XML and JSON? - Stack Overflow

Kanskje man bør bruke begge? Hvis bruker av side2.com ikke har aktivert javascript i sin browser så kan side2.com spørre side1.com/api.php etter xml format, og spørre etter json format til de som har javascript aktivert?

Er det mulig å hente ut og presentere info fra en json-fil uten bruk av javascript?

Med XQuery så kan man søke i en xml-fil etter spesifikk info, hvilken “språk” kan man søke etter spesifikk info i en json-fil?

JSON står for JavaScript Object Notation, slik at JSON er et dataformat som er tilnærmet likt javascript, og kan derfor parses.

[PHP]var JSON = ‘{“key” : “value”}’;

var object = JSON.parse(JSON);

object.key == ‘value’; // true[/PHP]

Du kan bruke JSON i en del andre språk også, du kan for eksempel hente en JSON fil med PHP og konvertere JSON til et objekt eller array i PHP og så bygge den markup’en du ønsker.

I nettleseren kan du ikke hente JSON og gjøre noe med denne uten javascript, HTML eller CSS har ingen mulighet til å parse JSON.

Dersom du putter JSON i en gyldig javascript fil deklarert som en variabel kan du inkludere JSON uten å bruke ajax, for eksempel

[PHP]var JSON = ‘[{“JSON”: “STRING”}]’;[/PHP]

Men da kan du egentlig like gjerne inkludere et objekt i stedet for, altså

[PHP]var JSON = [{“JSON”: “STRING”}];[/PHP]

merk at det ovenfor ikke er JSON, det er et javascript array som inneholder et objekt, og den eneste forskjellen er mangler på quotes.

Du kan også inkludere JSONP, dette gjøres sømløst i jQuery’s ajax, men JSONP er egentlig ikke ajax, det er en JSONP fil som inkluderes, altså en fil som inneholder JSON som er pakket i en funksjon.

Etter å ha jukket litt med både xml og json så er json helt klart mye mer oversiktlig og enklere format. Litt rart at alle nettbutikker leverer produkt feed i xml format, har ikke nettbutikkleverandører hørt om json?