将字符串转换为JSON对象

时间:2012-06-11 08:49:11

标签: javascript ajax json

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

我有一个只有在传递JSON对象时才有效的函数。如果我将一个字符串传递给它,格式与JSON相同,则它不起作用。所以我想让该函数认为传递给它的字符串是一个JSON。该字符串确实是JSON格式。

我也尝试了以下内容。我通过Ajax输入了字符串,“handle as”参数为“JSON”,然后当我将结果传递给它运行的函数时。

所以我推断问题不在于字符串。如何将此字符串转换为JSON?如果我通过ajax请求得到相同的字符串,然后将其传递给函数工作,而直接传递它不起作用。

字符串如下:

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

and closing braces..

9 个答案:

答案 0 :(得分:333)

var obj = JSON.parse(string);

string是你的json字符串。

答案 1 :(得分:26)

您可以使用JSON.parse()

See docs at MDN

示例:

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

答案 2 :(得分:7)

我遇到类似字符串的问题

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

希望它有所帮助,

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

答案 3 :(得分:6)

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

链路: -

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

答案 4 :(得分:3)

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

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

内部Map将充当JSON对象

答案 5 :(得分:2)

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

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

Objdata= Json.parse(Data);

答案 6 :(得分:1)

只需使用eval功能。

var myJson = eval(theJsibStr);

答案 7 :(得分:0)

JSON.parse()功能可以。

使用Jquery,

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

答案 8 :(得分:0)

让我们认为你有像

这样的字符串

示例:"姓名: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);
&#13;
&#13;
&#13;

`