Convertendo uma string para o object JSON

Como você faz JS pensar que uma string é JSON?

Eu tenho uma function que só funciona se o object JSON é passado para ele. Se eu passar uma string para ela, com o mesmo formato que o JSON, não funciona. Então, quero fazer essa function pensar que a string passada para ela é um JSON. A string está no formato JSON.

Eu também tentei o seguinte. Eu introduzi a string através do Ajax, com o parâmetro “handle as” como “JSON” e, em seguida, quando eu passei o resultado para a function que ele funciona.

Então eu deduzi que o problema não é com a string. Como faço para converter essa string para JSON? Se eu obtiver a mesma string através da requisição ajax e, em seguida, passá-la para a function funciona, ao passo que a passagem direta não funciona.

A string é a seguinte:

{ "data": [ { "id": "id1", "fields": [ { "id": "name1", "label": "joker", "unit": "year" }, {"id": "name2", "label": "Quantity"}, ], "rows": [ data here.... and closing braces.. 

 var obj = JSON.parse(string); 

Onde string é sua string json.

Você pode usar o JSON.parse() para isso.

Veja os documentos no MDN

Exemplo:

 var myObj = JSON.parse('{"p": 5}'); console.log(myObj); 

Eu tive o mesmo problema com uma string semelhante a sua

 {id:1,field1:"someField"},{id:2,field1:"someOtherField"} 

O problema dela é a estrutura da string que o json parser não estava reconhecendo que precisa criar 2 objects nesse caso. então o que eu fiz foi meio bobo, eu apenas estruturei minha string e adicionei o [] com o parser reconhecido

 var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"} myString = '[' + myString +']' var json = $.parseJSON(myString) 

Espero que ajude,

Se alguém tiver uma abordagem mais elegante, por favor compartilhe.

 var obj = jQuery.parseJSON('{"name":"John"}'); alert( obj.name === "John" ); 

binding:-

http://api.jquery.com/jQuery.parseJSON/

 var Data=[{"id": "name2", "label": "Quantity"}] 

Passe a variável string em Json parse:

 Objdata= Json.parse(Data); 

JSON.parse() function JSON.parse() .

ou

Usando o Jquery,

 var obj = jQuery.parseJSON( '{ "name": "Vinod" }' ); alert( obj.name === "Vinod" ); 

Simplesmente use a function eval .

 var myJson = eval(theJsibStr); 

Vamos considerar que você tem uma string como

exemplo: “nome: lucy, idade: 21 anos, sexo: feminino”

 function getJsonData(query){ let arrayOfKeyValues = query.split(','); let modifiedArray = new Array(); console.log(arrayOfKeyValues); for(let i=0;i< arrayOfKeyValues.length;i++){ let arrayValues = arrayOfKeyValues[i].split(':'); let arrayString ='"'+arrayValues[0]+'"'+':'+'"'+arrayValues[1]+'"'; modifiedArray.push(arrayString); } let jsonDataString = '{'+modifiedArray.toString()+'}'; let jsonData = JSON.parse(jsonDataString); console.log(jsonData); console.log(typeof jsonData); return jsonData; } let query = "name:lucy,age:21,gender:female"; let response = getJsonData(query); console.log(response);