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

4th*_*ace 9 javascript json

将JSON字符串分配给变量的正确方法是什么?我一直在收到EOF错误.

var somejson = "{
    "key1": "val1",
    "key2": "value2"
}";
Run Code Online (Sandbox Code Playgroud)

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

Car*_*l K 13

你没有正确逃脱.你确保你这样做:

var somejson = "{ \"key1\": \"val1\",\"key2\": \"value2\"}";
Run Code Online (Sandbox Code Playgroud)

更简单的方法是使用将现有对象转换为字符串JSON.stringify().会尽可能地推荐这个,因为输入拼写错误的可能性很小.

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

var json = JSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)

  • 你的答案肯定是有效的,但可能更容易使用`'`而不是逃避一切. (3认同)

Dyl*_*att 7

如果你想要字符串,而不是对象(注意'代替")

var somejson =  '{ "key1": "val1", "key2": "value2" }';
Run Code Online (Sandbox Code Playgroud)

如果你想要一个用多行声明的字符串,而不是对象(换行符在Javascript中有意义)

var somejson =  '{'
 + '"key1": "val1",' 
 + '"key2": "value2"' 
 + '}';
Run Code Online (Sandbox Code Playgroud)

如果你想要对象,而不是字符串

var somejson =  { "key1": "val1", "key2": "value2" };
Run Code Online (Sandbox Code Playgroud)

如果你想要一个字符串

var somejson =  JSON.stringify(someobject);
Run Code Online (Sandbox Code Playgroud)