in

Representando nulo en JSON

apple touch icon@2

Evaluemos el análisis de cada uno:

http://jsfiddle.net/brandonscript/Y2dGv/

var json1 = '{}';
var json2 = '{"myCount": null}';
var json3 = '{"myCount": 0}';
var json4 = '{"myString": ""}';
var json5 = '{"myString": "null"}';
var json6 = '{"myArray": []}';

console.log(JSON.parse(json1)); // {}
console.log(JSON.parse(json2)); // {myCount: null}
console.log(JSON.parse(json3)); // {myCount: 0}
console.log(JSON.parse(json4)); // {myString: ""}
console.log(JSON.parse(json5)); // {myString: "null"}
console.log(JSON.parse(json6)); // {myArray: []}

los tl; dr aquí:

El fragmento en el json2 variable es el camino la especificación JSON indica null debe estar representado. Pero, como siempre, depende de lo que esté haciendo; a veces, la forma «correcta» de hacerlo no siempre funciona para su situación. Use su juicio y tome una decisión informada.


JSON1 {}

Esto devuelve un objeto vacío. No hay datos allí, y solo le dirá que cualquier clave que esté buscando (ya sea myCount u otra cosa) es de tipo undefined.


JSON2 {"myCount": null}

En este caso, myCount está realmente definido, aunque su valor es null. Este es no lo mismo que ambos «no undefined y no null«, y si estuviera probando una condición u otra, esto podría tener éxito, mientras que JSON1 fallaría.

Esta es la forma definitiva de representar null por la especificación JSON.


JSON3 {"myCount": 0}

En este caso, myCount es 0. No es lo mismo que null, y no es lo mismo que false. Si su declaración condicional se evalúa myCount > 0, entonces valdría la pena tener esto. Además, si está ejecutando cálculos basados ​​en el valor aquí, 0 podría ser útil. Si está tratando de probar null sin embargo, esto no va a funcionar en absoluto.


JSON4 {"myString": ""}

En este caso, obtendrá una cadena vacía. Nuevamente, al igual que con JSON2, está definido, pero está vacío. Podrías probar if (obj.myString == "") pero no pudiste probar null o undefined.


JSON5 {"myString": "null"}

Es probable que esto te meta en problemas, porque estás configurando el cuerda valor a nulo; en este caso, obj.myString == "null" sin embargo lo és no == null.


JSON6 {"myArray": []}

Esto le dirá que su matriz myArray existe, pero está vacío. Esto es útil si está intentando realizar un recuento o evaluación en myArray. Por ejemplo, supongamos que desea evaluar la cantidad de fotos que publicó un usuario; podría hacerlo myArray.length y volvería 0: definido, pero no se han publicado fotos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

PostgreSQL – Sintaxis

gfg 200x200 min

Mangosta | Función findById () – GeeksforGeeks