Javascript 将字符串转换为JSON对象

Javascript 将字符串转换为JSON对象,javascript,ajax,json,Javascript,Ajax,Json,如何让JS认为字符串是JSON 我有一个函数,它只有在JSON对象被传递给它时才起作用。如果我用与JSON相同的格式向它传递一个字符串,它将不起作用。所以我想让这个函数认为传递给它的字符串是JSON。字符串确实是JSON格式的 我还尝试了以下方法。我通过Ajax输入字符串,参数“handleas”为“JSON”,然后当我将结果传递给它工作的函数时 所以我推断问题不在于字符串。如何将此字符串转换为JSON?若我通过ajax请求获得相同的字符串,然后将其传递给函数,那个么就可以工作了,而直接传递则不

如何让JS认为字符串是JSON

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

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

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

字符串如下所示:

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

and closing braces..

您可以使用
JSON.parse()
进行此操作

示例:

var myObj = JSON.parse('{"p": 5}');
console.log(myObj);
其中
string
是您的json字符串

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


我对类似于您的字符串也有同样的问题

{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" );
将字符串变量传递到Json解析:

Objdata= Json.parse(Data);

只需使用
eval
功能即可

var myJson = eval(theJsibStr);

让我们想想你的字符串有点像

示例:“姓名:露西,年龄:21岁,性别:女性”

函数getJsonData(查询){ 让arrayOfKeyValues=query.split(','); 设modifiedArray=newarray(); console.log(arrayOfKeyValues); for(设i=0;i控制台日志(响应)使用对象映射器将字符串转换为HashMap

newObjectMapper().readValue(字符串,Map.class)


内部映射将表现为JSON对象

标题的可能副本会误导用户。根据你问题的内容,我宁愿说你想把一个包含JSON的字符串转换成一个JavaScript对象/数组。字符串中有一个\n。现在只需要弄清楚如何使用JSON.parse就可以了。好的,我修复了它。去把你的绳子放在那里。如果它说它是正确的,那么你可以使用JSONParse来实现同样的功能。如果有人读到这个,标题应该是“将JSON字符串转换为对象”,这是行不通的。它抛出了一个错误“SyntaxError:JSON.parse:unexpected character”。字符串没有任何问题,因为当我通过ajax请求获得相同的字符串并将其作为“JSON”处理时,不会出现任何问题。请发布您的acutal JSON字符串{“data”:[{id]“:-这里缺少一个双引号,也就是说,当我通过Ajax获得它时,它会像处理JSON响应一样工作。所以我想我必须将其转换为JSON对象。我最后去了jsonlint.com,确保我的JSON是正确的。这不起作用。它抛出了一个错误“SyntaxError:JSON.parse:unexpected character”。当我通过ajax请求获得相同的字符串并将其作为“JSON”处理时,字符串没有任何错误",没有问题发生。@Zer0:您应该更新您的问题以及您如何尝试json字符串。@Zer0:我们只能尽我们所知回答您的问题。您说您有一个json字符串,我们会相应地回答。您的字符串似乎不同,如果您发布它,我们可以考虑到这一点来回答。如果您问一个关于cod的问题ing,那么代码/数据是必不可少的。在上面的代码中,您错误地构造了
myString
。它不是一个字符串,并且格式不正确。您的第二行将变得多余。它应该是:
var myString='[{“id”:1,“field1”:“someField”},{“id”:2,“field1”:“someOtherField”}]“
我知道这是一篇很老的帖子,但我想我会增加一些清晰度,以防有人发现它。我使用
$.parseJSON
解决了我的问题,其中
JSON.parse
不起作用,并抛出了一个错误
JSON.parse不是一个函数
在您的示例中,
数据
已经是一个对象,因此不需要使用该死。你需要在所有数据周围加上引号才能使其成为字符串。eval是邪恶的,使用这种方法时要非常小心
Objdata= Json.parse(Data);
var myJson = eval(theJsibStr);