Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript JSON解析初始化值_Javascript_Json - Fatal编程技术网

javascript JSON解析初始化值

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); 我在这里工作: 我得到一个错误: 未

我想用数据将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);
我在这里工作:

我得到一个错误:

未捕获的语法错误:意外的标记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之前。