xml vs json

kongen

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

adeneo

Medlem
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
 

kongen

kongemedlem
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?
 

kongen

kongemedlem
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?
 

adeneo

Medlem
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

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"}]';

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

PHP:
var JSON = [{"JSON": "STRING"}];

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.
 
Sist redigert:

kongen

kongemedlem
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?
 
Topp