Domanda

    

Questa domanda ha già una risposta qui:

         

Sono nuovo di JSON e JavaScript oggetti.

  • Qualcuno può spiegare le differenze tra JSON e oggetto JavaScript?
  • Quali sono i loro usi?
  • È uno migliore rispetto agli altri? O dipende dalla situazione?
  • Quando usare quale, in quale situazione?
  • Perché è stato creato JSON, in primo luogo? Qual era il suo scopo principale?
  • Qualcuno può fornire esempi di quando si dovrebbe usare JSON piuttosto che un oggetto JavaScript e viceversa?
È stato utile?

Soluzione

In primo luogo si dovrebbe sapere cosa JSON è:

  • È lingua agnostico formato di interscambio dati.

La sintassi di JSON è stato ispirato dal oggetto JavaScript letterale notazione, ma ci sono differenze tra di loro.

Per esempio, in JSON tutti i tasti deve essere quotato, mentre in letterali oggetto non è necessario:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

Le virgolette sono obbligatorie in JSON, perché in JavaScript (più precisamente in ECMAScript 3rd Edition.), L'utilizzo di parole riservate come nomi di proprietà non è consentita, ad esempio:

var o = { if: "foo" }; // SyntaxError in ES3

Mentre, utilizzando un letterale stringa come un nome di proprietà (citando il nome di proprietà) non dà problemi:

var o = { "if": "foo" }; 

per "compatibilità" (e facile eval'ing forse?) Le virgolette sono obbligatori.

I tipi di dati in JSON sono anche limitata ai seguenti valori:

  • string
  • number
  • object
  • array
  • Un letterale come:
    • true
    • false
    • null

La grammatica di cambiamenti Strings. Essi Sono d' essere delimitati da doppi apici , mentre in JavaScript, è possibile utilizzare le virgolette singole o doppie in modo intercambiabile.

// Invalid JSON:
{ "foo": 'bar' }

Il JSON grammatica della Numbers accettato cambia anche, in JavaScript è possibile utilizzare esadecimali letterali, ad esempio 0xFF, o (il famigerato) letterali Octal esempio 010. In JSON è possibile utilizzare solo decimale letterali.

// Invalid JSON:
{ "foo": 0xFF }

Ci sono alcune implementazioni buggy (Firefox 3.5+, IE8 +, json2.js), dove letterali ottale sono erroneamente ammessi, per esempio JSON.parse('01') dovrebbe produrre un SyntaxError.

Altri suggerimenti

JSON è una rappresentazione stringa di un oggetto. Si tratta di un formato di serializzazione interoperabile. Non è legato solo a JavaScript. Per esempio ci sono serializzatori JSON per .NET che consente di serializzare / deserializzare oggetti .NET.

Quindi è solo un formato che consente di convertire dagli oggetti a corda e indietro che è conveniente se si desidera trasferire loro sul filo.

E 'molto vicino alla rappresentazione oggetto JavaScript e se semplicemente eval() una stringa JSON si otterrà l'oggetto corrispondente.

JSON è un formato di interscambio di dati, il che succede solo a guardare come un sottoinsieme di YAML o codice JavaScript è possibile eseguire e ottenere un oggetto indietro. Un oggetto JavaScript è solo un oggetto in JavaScript.

Con JSON essere un formato di interscambio di dati è possibile scambiare dati strutturati in una forma testuale con esso. E 'abbastanza disaccoppiato da JavaScript, ormai. oggetto JavaScript permette di creare e lavorare con i dati strutturati durante l'esecuzione di un programma JavaScript.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top