parse - string to object javascript




Parse JSON en JavaScript? (11)

Como mencionaron muchos otros, la mayoría de los navegadores admiten JSON.parse y JSON.stringify .

Ahora, también me gustaría agregar que si está utilizando AngularJS (que recomiendo encarecidamente), también proporciona la funcionalidad que necesita:

var myJson = '{"result": true, "count": 1}';
var obj = angular.fromJson(myJson);//equivalent to JSON.parse(myJson)
var backToJson = angular.toJson(obj);//equivalent to JSON.stringify(obj)

Solo quería agregar las cosas sobre AngularJS para proporcionar otra opción. TENGA EN CUENTA que AngularJS no admite oficialmente Internet Explorer 8 (y versiones anteriores, en realidad), aunque a través de la experiencia, la mayoría de las cosas parecen funcionar bastante bien.

Esta pregunta ya tiene una respuesta aquí:

Quiero analizar una cadena JSON en JavaScript. La respuesta es algo así como

var response = '{"result":true,"count":1}';

¿Cómo puedo obtener los valores result y count de esto?


El siguiente ejemplo lo dejará claro:

var jsontext   = '{"name":"x","age":"11"}';
var getContact = JSON.parse(jsontext);
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11

O

También puede utilizar la función eval . El siguiente ejemplo es usar la función eval :

var jsontext   = '{"name":"x","age":"11"}';
var getContact = eval('(' + jsontext + ')');
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11

Como la función JSON.parse es más segura y se ejecuta más rápido que la función eval, le recomiendo que use la función JSON.parse .


JSON.parse () convierte cualquier cadena JSON pasada a la función, en un objeto JSON.

Para una mejor comprensión, presione F12 para abrir el elemento Inspeccionar de su navegador, y vaya a la consola para escribir los siguientes comandos:

var response = '{"result":true,"count":1}'; // Sample JSON object (string form)
JSON.parse(response); // Converts passed string to a JSON object.

Ahora ejecuta el comando:

console.log(JSON.parse(response));

Obtendrá salida como Objeto {resultado: verdadero, cuenta: 1}.

Para usar ese objeto, puede asignarlo a la variable, digamos obj :

var obj = JSON.parse(response);

Ahora, utilizando obj y el operador de punto (.) Puede acceder a las propiedades del objeto JSON.

Intenta ejecutar el comando

console.log(obj.result);

La forma más fácil de usar el método parse() :

var response = '{"a":true,"b":1}';
var JsonObject= JSON.parse(response);

Este es un ejemplo de cómo obtener valores:

var myResponseResult = JsonObject.a;
var myResponseCount = JsonObject.b;

Pensé que JSON.parse(myObject) funcionaría. Pero dependiendo de los navegadores, podría valer la pena usar eval('('+myObject+')') . El único problema que puedo recomendar es tener cuidado con la lista de niveles múltiples en JSON.


Puedes usar la función eval como en otras respuestas. (No olvide las llaves adicionales). Sabrá por qué cuando profundiza más, o simplemente use la función jQuery parseJSON :

var response = '{"result":true , "count":1}'; 
var parsedJSON = $.parseJSON(response);

O

Puede utilizar este código a continuación.

var response = '{"result":true , "count":1}';
var jsonObject = JSON.parse(response);

Y puede acceder a los campos utilizando jsonObject.result y jsonObject.count .


Si obtiene esto de un sitio externo, puede ser útil usar getQSON de jQuery. Si es una lista puedes recorrerla con $ .each

$.getJSON(url, function (json) {
    alert(json.result);
    $.each(json.list, function (i, fb) {
        alert(fb.result);
    });
});

Si pasa una variable de cadena (una cadena JSON bien formada) a JSON.parse de MVC @Viewbag que tiene comillas dobles, '"', como comillas, debe procesarla antes de JSON.parse ( jsonstring )

    var jsonstring = '@ViewBag.jsonstring';
    jsonstring = jsonstring.replace(/"/g, '"');  

Si usas el kit de herramientas Dojo :

require(["dojo/json"], function(JSON){
    JSON.parse('{"hello":"world"}', true);
});

Si usas jQuery, es simple:

var response = '{"result":true,"count":1}';
var obj = $.parseJSON(response);
alert(obj.result); //true
alert(obj.count); //1

Una forma fácil de hacerlo:

var data = '{"result":true,"count":1}';
var json = eval("[" +data+ "]")[0]; // ;)




parsing