Necesito una ayuda simple con esta pregunta, estoy tratando de convertir una cadena JSON en dos matrices, mire el ejemplo:
// What I have var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}'; // What I need: var array1 = {"id":1,"name":"Test1"}; var array2 = {"id":2,"name":"Test2"}; Traté de hacerlo usando JSON.parse(str) , pero sin éxito como a continuación:
//Works: var str = '{"id":1,"name":"Test1"}'; dataObj = JSON.parse(str); console.log(dataObj) //Doesn't work: var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}'; dataObj = JSON.parse(str); console.log(dataObj)Cualquier sugerencia ?
No ha formateado correctamente su cadena JSON.
Debería haber sido var str = '[{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}]';
todo lo que quieres hacer es poner los objetos en una matriz
var str = '[{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}]'; dataObj = JSON.parse(str); console.log(dataObj)después:
var array1 = dataObj[0]; var array2 = dataObj[1];El problema es que '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}' no es un formato JSON válido.
Prueba esto:
var str = '[{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}]'; dataObj = JSON.parse(str); console.log(dataObj)Si desea asignar objetos a dos variables separadas (como describió):
var obj1 = dataObj[0]; var obj2 = dataObj[1];Cambié el nombre de los nombres de las variables porque lo que se asigna a la variable es un objeto, no una matriz