I caratteri vuoti come spazi, tabulazioni e ritorni a capo ignorati in stringhe json?I caratteri di spazi bianchi sono insignificanti in JSON?
Ad esempio, è {"a":"b"}
uguale a {"a" : "b"}
?
I caratteri vuoti come spazi, tabulazioni e ritorni a capo ignorati in stringhe json?I caratteri di spazi bianchi sono insignificanti in JSON?
Ad esempio, è {"a":"b"}
uguale a {"a" : "b"}
?
Sì, gli spazi all'esterno di una stringa letterale con doppi apici vengono ignorati nella sintassi. Specificamente, la produzione ws
nella grammatica JSON in RFC 4627 spettacoli:
Insignificant whitespace is allowed before or after any of the six structural characters. ws = *( %x20/ ; Space %x09/ ; Horizontal tab %x0A/ ; Line feed or New line %x0D ; Carriage return )
Grazie. Avevo letto la RFC ma non ero sicuro di quale tipo di linguaggio di denotazione della grammatica fosse - in particolare, cosa significava *. – nomen
* = zero o più (dalla notazione di espressioni regolari) – kevinarpe
E riguardo gli spazi incorporati nei valori numerici: è {"a": 12} equivalente a {"a": 1 2} Interpreto la definizione "Gli spazi vuoti insignificanti sono consentiti prima o dopo uno qualsiasi dei sei caratteri strutturali "per indicare che gli spazi bianchi NON sono consentiti all'interno di un valore numerico o di data – aeropapa17
Nella versione standard JSON, spazi di fuori di stringhe viene ignorato, come è stato detto.
Tuttavia, poiché la tua domanda è codificata in C#, dovrei notare che c'è almeno un altro caso in C# /. NET dove gli spazi in JSON sono importanti.
Il DataContractJsonSerializer
utilizza una speciale proprietà __type
per supportare la deserializzazione nella sottoclasse corretta. Questa proprietà è necessaria per essere la prima proprietà di un oggetto e per non avere spazi bianchi tra il nome della proprietà e la precendente {
. Vedi questo thread precedente: DataContractJsonSerializer doesn't work with formatted JSON?
Almeno, ho verificato che il requisito di spazi vuoti è vero a partire da .NET 4. Forse questo verrà modificato in una versione futura per renderlo più in linea con lo standard JSON ?
Pericolo, Will Robinson! – wprl
spazi non sono tecnicamente caratteri vuoti – Falmarri
tecnicamente il tuo cervello dovrebbe aver analizzato "vuoto" come "spazio bianco" – mk12