javascript JSON解析初始化值
我想用数据将json解析为js对象。这是我的简单示例:javascript JSON解析初始化值,javascript,json,Javascript,Json,我想用数据将json解析为js对象。这是我的简单示例: var IsTrue = true; var Number = 9; var Object = { a : 1}; var Array = [10,6]; var jStr = '{"ask" : IsTrue, "value" : Number, "obj" : Object, "arr" : Array}'; var js = JSON.parse(jStr); console.log(js); 我在这里工作: 我得到一个错误: 未
var IsTrue = true;
var Number = 9;
var Object = { a : 1};
var Array = [10,6];
var jStr = '{"ask" : IsTrue, "value" : Number, "obj" : Object, "arr" : Array}';
var js = JSON.parse(jStr);
console.log(js);
我在这里工作:
我得到一个错误:
未捕获的语法错误:意外的标记I
我希望我能将json解析为js对象,并在对象初始化值中的变量之前使用初始化变量。字符串中有对变量的引用,因此无法使用
json.parse()解析它。
。将字符串转换为有效的JSON,可以使用JSON.stringify()
进行转换
var IsTrue=true;
var数=9;
变量对象={
a:1
};
var数组=[10,6];
var jStr='{“ask”:'+JSON.stringify(IsTrue)+',“value”:'+JSON.stringify(Number)+',“obj:'+JSON.stringify(Object)+',“arr:'+JSON.stringify(Array)+'}';
var js=JSON.parse(jStr);
console.log(js)代码>除非您有使用字符串的特定原因,否则为什么不使用这样的字符串
var IsTrue = true;
var Number = 9;
var Object = { a : 1};
var Array = [10,6];
var js = {
"ask" : IsTrue,
"value" : Number,
"obj" : Object,
"arr" : Array
};
console.log(js);
尽管您应该避免使用类型作为变量名。Number、Object、Array都是可怕的变量名。如果它不会导致解析错误,那么它肯定会在某个时候让人感到困惑。在解析之前,您需要一个纯字符串
var IsTrue = true,
Number = 9,
Object = { a : 1},
Array = [10,6];
var jStr = {"ask" : IsTrue, "value" : Number, "obj" : Object, "arr" : Array};
var js = JSON.parse(JSON.stringify(jStr));
console.log(js);
但我不知道你为什么要这样做。不要使用eval()
,使用JSON.parse
,JSON.stringify
对象上的eval()
当有简单的方法将其转换为JSON时,不要鼓励使用eval()
。删除>中的引号代码>这只是创建一个对象,OP感兴趣的是创建一个JSON对象,但他随后尝试返回一个对象的JSON.parse(str)。其次,一旦他创建了对象,他就可以将其转换回JSON字符串,如果这真的是他的初衷的话
是其代码的最后一行,在将结果对象记录到console之前。