Aquí hay algunos ejemplos de JSON adicionales válidos, uno por bloque:
{}[0]{"__comment":"json doesn't accept comments and you should not be commenting even in this way","avoid!":"also, never add more than one key per line, like this"}[{"why":null}]{"not true":[0,false],"true":true,"not null":[0,1,false,true,{"obj":null},"a string"]}
Representación de la interfaz de usuario tan impresionante
shridutt kothari
¿JSON tiene que tener comillas dobles? Traté de validar la cadena de OP anterior pero con comillas simples en jsonlint.com y me dice que no es válida. Pero es válido cuando se usan comillas dobles.
Ray
@Ray como siempre, eso no tiene una respuesta simple de sí o no, aunque yo diría que es principalmente "sí, solo entre comillas dobles". json.org solo nos dice sobre el uso de comillas dobles, y la mayoría de los lugares probablemente seguirán eso. Sin embargo, aquí hay una investigación más profunda al respecto: stackoverflow.com/a/2275428/274502
cregox
61
Su objeto JSON en este caso es una lista. JSON es casi siempre un objeto con atributos; un conjunto de uno o más pares clave: valor, por lo que lo más probable es que vea un diccionario:
{"MyStringArray":["somestring1","somestring2"]}
entonces puede solicitar el valor de "MyStringArray"y obtendrá una lista de dos cadenas, "somestring1"y "somestring2".
El ejemplo de código que publicó no es válido, cuando intente analizar esa cadena como un json arrojará un error / excepción. El hecho de que diga que JSON es siempre pares clave / valor también es intrínsecamente incorrecto. Nada en la especificación JSON dice que NECESITA tener pares clave / valor. Cuando hablamos de transporte de datos, los pares clave / valor son la estructura más útil, pero la cadena que publicó el OP es perfectamente válida JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR
1
Tenía API's en el cerebro, donde desea buscar el valor en una matriz basada en una clave. Entonces sería, para una matriz sin nombre, {"1": "somestring1", "2": "somestring2"}
PapaSmurf
41
Básicamente sí, JSON es solo una representación literal de JavaScript de su valor, por lo que lo que dijo es correcto.
Puede encontrar una explicación bastante clara y buena de la notación JSON en http://json.org/
Respuestas:
Explicaré un poco más sobre la increíble respuesta de ChrisR y traeré imágenes de su increíble referencia .
Un JSON válido siempre comienza con llaves
{
o corchetes[
, nada más.{
comenzará unobject
:[
comenzará unarray
:Y
value
es unaobject
,array
,string
,number
,bool
onull
:Entonces sí,
["a", "b"]
es un JSON perfectamente válido, como podría probar en el enlace que Manish señaló .Aquí hay algunos ejemplos de JSON adicionales válidos, uno por bloque:
fuente
Su objeto JSON en este caso es una lista. JSON es casi siempre un objeto con atributos; un conjunto de uno o más pares clave: valor, por lo que lo más probable es que vea un diccionario:
entonces puede solicitar el valor de
"MyStringArray"
y obtendrá una lista de dos cadenas,"somestring1"
y"somestring2"
.fuente
Básicamente sí, JSON es solo una representación literal de JavaScript de su valor, por lo que lo que dijo es correcto.
Puede encontrar una explicación bastante clara y buena de la notación JSON en http://json.org/
fuente
Este es un ejemplo de una cadena JSON con un
Employee
objeto, luego múltiples cadenas y valores en una matriz como referencia para@cregox
...Un poco complicado, pero puede explicar mucho en una sola cadena JSON.
fuente