2015-06-18 10 views
5

Ho appena iniziato a imparare JSON:tipo di numero in oggetto JSON

cui uno dei seguenti è corretta:

var json = {"age":22} // my book writes like this 

o

var json = {age:22} // internet show example like this 

PHP tempesta genera

argument type number is not assignable to parameter type string 

per entrambi.

Se il secondo è corretto, mostrare qual è la differenza con l'oggetto JS.

+0

Entrambi sono corrette, quotazioni sono ridondanti in questo caso. – dfsq

+0

btw perché PHPstorm genera l'avviso, sono pazzo ?? –

risposta

5

Bene, stai usando il termine JSON, ma l'esempio che mostri non è JSON. Se stai parlando di semplici oggetti JavaScript, allora entrambi gli esempi che hai dato sono corretti. Quando le persone si riferiscono a JSON, di solito si riferiscono al tipo di dati inviati tramite scambi client/server, che è molto specifico, e ci sono i linters (vedi jsonlint, per esempio). L'errore di PHPStorm non è corretto.

output

+0

grazie. quindi il primo potrebbe essere considerato come un normale oggetto JS giusto? è per questo che entrambi potrebbero ancora stampare il valore. –

+1

@hansf., Entrambi gli esempi forniti sono oggetti JS perfettamente validi. Ma solo il primo esempio è il tipo di dati JSON (senza la parte 'var whatever ='). –

+1

Grazie, voglio solo seguire il valido standar, ma mi fido di te ora! –

1

Fondamentalmente JSON sono coppie di valori fondamentali, la sua sostanza oggetto per la memorizzazione di dati

  • var json = { "età": "22"}: se si utilizza in questo modo è possibile ottenere il valore come json ["age"] e json.age, entrambi sono utili in certe situazioni e il valore restituito è stringa, è necessario convertirlo (solo il suo necessario)
  • var json = {età: 22}: se si utilizza come questo non è possibile ottenere valore come il formato JSON [""], solo json.age può essere utilizzato per ottenere
  • var json = { "età": 22} dovrebbe andare bene come utilizzare il tipo il numero e per di più si può scaricare utilizzando JSON [ "age"]

Gli scenari di cui sopra sono il rispetto per i tuoi functionalites e utilizzo di essi

+0

quindi dici che entrambi sono JSON validi ?? –

+1

@hansf.in base ai validatori JSON, var json = {"chiave": 22} è corretto, e se il tuo json ha molti dati e il loop è richiesto e modifica i dati secondo questo valore, come per (chiave var in jsonObj) { console.log (jsonObj [chiave]); // consoles values ​​in your jeff } –

1

Entrambe le modalità sono valide in Javascript. Ma le virgolette sono necessarie in casi specifici, come:

var obj = { 
    'foo bar': 0, 
    'foo-bar': 0, 
    '': 0 
} 
1

quando si lavora con un validatore JSON/linter è uno strumento essenziale, in particolare si tratta di grandi insiemi di dati.

Invio entrambi questi attraverso http://jsonlint.com/ i risultati sono:

Il primo verifica come valido JSON, il secondo rivela:

Parse error on line 1: 
     {age: 22} 
    -----^ 
    Expecting 'STRING', '}' 
+0

__ + 1, grazie per il validatore. –

Problemi correlati