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