Como você faz o JS pensar que uma string é JSON?
Eu tenho uma função que só funciona se o objeto JSON for passado para ele. Se eu passar uma string para ele, com o mesmo formato que JSON, ele não funcionará. Então, eu quero fazer essa função pensar que a string passada para ela é um JSON. A sequência está realmente no formato JSON.
Eu também tentei o seguinte. Eu inseri a string através do Ajax, com o parâmetro "handle as" como "JSON" e, em seguida, quando passei o resultado para a função que funciona.
Então deduzi que o problema não está na string. Como faço para converter essa string em JSON? Se eu receber a mesma string através da solicitação ajax e depois passá-la para a função funciona, enquanto a passagem direta não funciona.
A sequência é a seguinte:
{
"data": [
{
"id": "id1",
"fields": [
{
"id": "name1",
"label": "joker",
"unit": "year"
},
{"id": "name2", "label": "Quantity"},
],
"rows": [ data here....
and closing braces..
fonte
Respostas:
Onde
string
está sua string json.fonte
Você pode usar o
JSON.parse()
para isso.Veja os documentos no MDN
Exemplo:
fonte
Eu tive o mesmo problema com uma string semelhante à sua
O problema aqui é a estrutura da string. O analisador json não estava reconhecendo que precisava criar 2 objetos nesse caso. Então, o que eu fiz é meio bobo, eu apenas reestruturei minha string e adicionei o
[]
com isso que o analisador reconheceuEspero que ajude,
Se alguém tiver uma abordagem mais elegante, compartilhe.
fonte
myString
incorretamente. Não é uma sequência e está JSON formatado incorretamente. Sua segunda linha se tornaria redundante. Aqui está o que deveria ser:var myString = '[{"id":1,"field1":"someField"},{"id":2,"field1":"someOtherField"}]'
eu sei que esse post é bastante antigo, mas achei que acrescentaria alguma clareza caso alguém o encontre.$.parseJSON
ondeJSON.parse
não estava funcionando e jogando um erroJSON.parse is not a function
ligação:-
http://api.jquery.com/jQuery.parseJSON/
fonte
converta a string em HashMap usando o Mapeador de Objetos ...
new ObjectMapper().readValue(string, Map.class);
Internamente, o Mapa se comportará como Objeto JSON
fonte
Passe a variável string para a análise Json:
fonte
Data
já é um objeto, portanto, não há necessidade de analisá-lo. Você precisaria de algumas aspas ao redor de todos os seus dados para torná-lo uma string.Basta usar a
eval
função.fonte
JSON.parse()
função fará.ou
Usando Jquery,
fonte
Vamos considerar que você tem string como
exemplo: "nome: lucy, idade: 21, sexo: feminino"
`
fonte