javascript - parse - Convirtiendo una cadena al objeto JSON
recorrer json javascript (7)
¿Cómo se puede hacer que JS piense que una cadena es JSON?
Tengo una función que solo funciona si se le pasa un objeto JSON. Si le paso una cadena, con el mismo formato que JSON, no funciona. Así que quiero hacer que esa función piense que la cadena que se le pasa es un JSON. La cadena está de hecho en el formato JSON.
También intenté lo siguiente. Ingresé la cadena a través de Ajax, con el parámetro "manejar como" como "JSON", y luego cuando pasé el resultado a la función, funciona.
Entonces deduje que el problema no está en la cuerda. ¿Cómo convierto esta cadena a JSON? Si obtengo la misma cadena a través de la solicitud ajax y luego la paso a la función funciona, mientras que pasarla directamente no funciona.
La cadena es la siguiente:
{
"data": [
{
"id": "id1",
"fields": [
{
"id": "name1",
"label": "joker",
"unit": "year"
},
{"id": "name2", "label": "Quantity"},
],
"rows": [ data here....
and closing braces..
Puede usar JSON.parse()
para eso.
Ejemplo:
var myObj = JSON.parse(''{"p": 5}'');
console.log(myObj);
Simplemente use la función eval
.
var myJson = eval(theJsibStr);
Tuve el mismo problema con una cadena similar a la tuya
{id:1,field1:"someField"},{id:2,field1:"someOtherField"}
El problema es la estructura de la cadena que el analizador json no reconoció que necesita crear 2 objetos en este caso. así que lo que hice es un poco tonto, simplemente reestructuré mi cadena y agregué el []
con esto el analizador reconocido
var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"}
myString = ''['' + myString +'']''
var json = $.parseJSON(myString)
Espero eso ayude,
Si alguien tiene un enfoque más elegante, por favor comparte.
JSON.parse()
función JSON.parse()
funcionará.
o
Usando Jquery,
var obj = jQuery.parseJSON( ''{ "name": "Vinod" }'' );
alert( obj.name === "Vinod" );
var Data=[{"id": "name2", "label": "Quantity"}]
Pase la variable de cadena a Json parse:
Objdata= Json.parse(Data);
var obj = JSON.parse(string);
Donde la string
es tu cadena json.
var obj = jQuery.parseJSON(''{"name":"John"}'');
alert( obj.name === "John" );
enlazar:-