将字符串转换为 JSON 对象

如何让 JS 认为字符串是 JSON?

我有一个函数,它只在 JSON 对象传递给它时才能工作。如果我向它传递一个与 JSON 格式相同的字符串,它就无法工作。所以我想让该函数认为传递给它的字符串是一个 JSON。该字符串确实是 JSON 格式的。

我还尝试了以下方法。我通过 Ajax 输入字符串,“ handle as”参数为“ JSON”,然后当我将结果传递给函数时,它就可以工作了。

所以我推断问题不在弦上。如何将这个字符串转换为 JSON?如果我通过 ajax 请求得到相同的字符串,然后将其传递给 function,那么直接传递它就不起作用。

字符串如下:

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


and closing braces..
650136 次浏览

你可以使用 JSON.parse()

去 MDN 看医生

例如:

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

其中 string是 json 字符串。

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

连结:-

Http://api.jquery.com/jquery.parsejson/

我也遇到过类似的问题

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

这里的问题是字符串的结构。在这种情况下,json 解析器没有意识到它需要创建2个对象。所以我所做的有点傻,我只是重新构造了字符串,然后用解析器识别出来的字符串添加了 []

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

希望能有所帮助,

如果有人有更优雅的方法,请分享。

JSON.parse()函数就可以了。

或者

使用 Jquery,

var obj = jQuery.parseJSON( '{ "name": "Vinod" }' );
alert( obj.name === "Vinod" );
var Data=[{"id": "name2", "label": "Quantity"}]

将字符串变量传递到 Json 解析器:

Objdata= Json.parse(Data);

只需使用 eval函数。

var myJson = eval(theJsibStr);

让我们假设你有一根像

例子: 姓名: Lucy 年龄: 21性别: 女

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);

`

使用对象映射器将字符串转换为 HashMap..。

new ObjectMapper().readValue(string, Map.class);

内部 Map 将表现为 JSON 对象

JSON.parse()是你的朋友,这里有一个例子:

let obj = JSON.parse(yourString)
console.log(typeof obj); // prints 'object' assuming your string is correctly formatted