如何将JSON字符串分配给Javascript变量?

13

如何正确将JSON字符串赋值给变量?我一直收到EOF错误。

var somejson = "{
    "key1": "val1",
    "key2": "value2"
}";

http://jsfiddle.net/x7rwq5zm/1/


1
我猜你正在寻找 JSON.parse() - hindmost
4个回答

19

你没有正确地进行转义。请确保这样做:

var somejson = "{ \"key1\": \"val1\",\"key2\": \"value2\"}";

更简单的方法是使用JSON.stringify()将现有对象转换为字符串。尽可能建议使用此方法,因为几乎不太可能出现打字错误。

var obj = {
    key1: "val1",
    key2: "value2"
};

var json = JSON.stringify(obj);

3
你的回答完全有效,但使用 ' 比转义所有内容可能更容易。 - Dylan Watt
好知道。出于好奇,是哪些环境呢?我从未遇到过。我会认为它会被实例化为字符串,并且稍后的任何解析都不知道如何制作该字符串。 - Dylan Watt
@DylanWatt本来是想点击编辑,结果点错了删除。累了,哈哈。我在另一个项目中使用单引号时遇到了一些问题。话虽如此,在新版本>0.10.x中可能已经不再是问题了。 - Carl K

9

如果你想要字符串而不是对象(注意使用'而不是"

var somejson =  '{ "key1": "val1", "key2": "value2" }';

如果您想要声明一个带有多行的字符串而不是对象(在Javascript中换行符是有意义的),请使用以下语法:
var somejson =  '{'
 + '"key1": "val1",' 
 + '"key2": "value2"' 
 + '}';

如果您需要的是对象而不是字符串
var somejson =  { "key1": "val1", "key2": "value2" };

如果您想要一般化的字符串

var somejson =  JSON.stringify(someobject);

2

将JSON字符串值分配给变量的最佳方法。

var somejson = JSON.parse('{"key1": "val1","key2": "value2"}')

0

我认为你应该使用JSON.stringify函数。 在这里查看答案 - 将JS对象转换为JSON字符串

var somejson = {
    "key1": "val1",
    "key2": "value2"
};
somjson = JSON.stringify(somejson);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接