¿Cómo haces 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. Entonces quiero hacer que esa función piense que la cadena que se le pasa es un JSON. La cadena está en el formato JSON.
También probé 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 es con la cadena. ¿Cómo convierto esta cadena a JSON? Si obtengo la misma cadena a través de la solicitud ajax y luego pasarla 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..
javascript
ajax
json
Zer0
fuente
fuente
Respuestas:
¿Dónde
string
está tu cadena JSON?fuente
Puedes usar el
JSON.parse()
para eso.Ver documentos en MDN
Ejemplo:
fuente
Tuve el mismo problema con una cadena similar a la tuya
El problema aquí es la estructura de la cadena. El analizador json no estaba reconociendo que necesita crear 2 objetos en este caso. Entonces, lo que hice fue un poco tonto, simplemente reestructuré mi cadena y agregué
[]
esto con el analizador reconocidoEspero eso ayude,
Si alguien tiene un enfoque más elegante, por favor comparta.
fuente
myString
incorrectamente. No es una cadena y tiene un formato JSON incorrecto. Su segunda línea se volvería redundante. Esto es lo que debería ser:var myString = '[{"id":1,"field1":"someField"},{"id":2,"field1":"someOtherField"}]'
sé que esta es una publicación bastante antigua, pero pensé que agregaría algo de claridad en caso de que alguien la encuentre.$.parseJSON
dondeJSON.parse
no funcionaba y arrojando un errorJSON.parse is not a function
enlace:-
http://api.jquery.com/jQuery.parseJSON/
fuente
convertir la cadena a HashMap usando Object Mapper ...
new ObjectMapper().readValue(string, Map.class);
Internamente Map se comportará como un objeto JSON
fuente
Pase la variable de cadena al análisis Json:
fuente
Data
ya es un objeto, por lo que no sería necesario analizarlo. Necesitaría algunas comillas que rodeen todos sus datos para convertirlo en una cadena.Simplemente use la
eval
función.fuente
JSON.parse()
La función lo hará.o
Usando Jquery,
fuente
Consideremos que tienes una cadena como
ejemplo: "nombre: lucy, edad: 21, género: femenino"
``
fuente