parsejson parse objeto json_decode ejemplo convertir array javascript json

javascript - parse - string to json



¿Por qué falla JSON.parse con la cadena vacía? (5)

Esta pregunta ya tiene una respuesta aquí:

Por que:

JSON.parse('''');

producir un error?

Uncaught SyntaxError: Unexpected end of input

¿No sería más lógico si simplemente devuelve null ?


Como una cadena vacía no es JSON válida, sería incorrecto que JSON.parse('''') devuelva null porque "null" es JSON válido. p.ej

JSON.parse("null");

devuelve null Sería un error que JSON no válido también se analizara como nulo.

Mientras que una cadena vacía no es JSON válida, dos comillas son JSON válidas. Esta es una distinción importante.

Es decir, una cadena que contiene dos comillas no es lo mismo que una cadena vacía.

JSON.parse(''""'');

se analizará correctamente (devolviendo una cadena vacía). Pero

JSON.parse('''');

No lo haré.

Las cadenas JSON mínimas válidas son

El objeto vacío ''{}''

La matriz vacía ''[]''

La cadena que está vacía ''""''

Un número, por ejemplo, ''123.4''

El valor booleano verdadero ''true''

El valor booleano falso ''false''

El valor ''null''


Para una cadena JSON válida, se requiere al menos un "{}". Ver más en http://json.org/



Use try-catch para evitarlo:

var result = null; try { // if jQuery result = $.parseJSON(JSONstring); // if plain js result = JSON.parse(JSONstring); } catch(e) { // forget about it :) }


JSON.parse espera una notación válida dentro de una cadena, ya sea objeto {} , matriz [] , cadena "" o tipos de números (int, float, dobles).

Si existe la posibilidad de que lo que se analiza sea una cadena vacía, entonces el desarrollador debe verificarlo.

Si se integrara en la función, agregaría ciclos adicionales, ya que se espera que las funciones integradas sean extremadamente efectivas, tiene sentido no programarlas para el caso de la carrera.