Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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
不使用jQuery解析JSON的Javascript_Javascript_Json - Fatal编程技术网

不使用jQuery解析JSON的Javascript

不使用jQuery解析JSON的Javascript,javascript,json,Javascript,Json,下面是amCharts中的示例,但我无法从PHP文件加载JSON,这就是我所做的: AmCharts.loadJSON = function(url) { if (window.XMLHttpRequest) { var request = new XMLHttpRequest(); } else { var request = new ActiveXObject('Microsoft.XMLHTTP'); } requ

下面是amCharts中的示例,但我无法从PHP文件加载JSON,这就是我所做的:

AmCharts.loadJSON = function(url) {
     if (window.XMLHttpRequest) {
         var request = new XMLHttpRequest();
     } else {
         var request = new ActiveXObject('Microsoft.XMLHTTP');
     }
     request.open('GET', url, false);
     request.send();
     return eval(request.responseText);
};


AmCharts.ready(function() {
   var chartData = AmCharts.loadJSON('chart.php');
   console.debug(chartData);
 });
但我总是得到:

return eval(request.responseText);
Uncaught SyntaxError: Unexpected string 
我用谷歌搜索过,但所有的解决方案都包括jQuery,建议不要使用eval。

使用属性,它是
窗口
对象的一部分(除非您使用的是旧浏览器)

JSON.parse(request.responseText)

下面是IE7和其他旧浏览器的一个示例

要将对象转换为JSON字符串,请使用
JSON.stringify({foo:1})

确定是否需要垫片,你可以简单地做

if(JSON){
    // safe to use the JSON object
}
根据您的评论,您有一些无效语法:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1 "value3": 15 "value4": 15 }]
某些属性缺少分隔它们的逗号。它应该是这样的:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1, "value3": 15, "value4": 15}]
请注意,您发布的是一个数组。无需使用
JSON.parse()
。就JSON而言,唯一有效的方法是将其字符串化为JSON
string
。但我不认为这就是你想要的

但是,如果是您提供给我的evauled字符串,则应将
eval()
替换为
JSON.parse()

JSON.parse(request.responseText)

下面是IE7和其他旧浏览器的一个示例

要将对象转换为JSON字符串,请使用
JSON.stringify({foo:1})

确定是否需要垫片,你可以简单地做

if(JSON){
    // safe to use the JSON object
}
根据您的评论,您有一些无效语法:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1 "value3": 15 "value4": 15 }]
某些属性缺少分隔它们的逗号。它应该是这样的:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1, "value3": 15, "value4": 15}]
请注意,您发布的是一个数组。无需使用
JSON.parse()
。就JSON而言,唯一有效的方法是将其字符串化为JSON
string
。但我不认为这就是你想要的

但是,如果是您提供给我的evauled字符串,则应将
eval()
替换为
JSON.parse()

JSON.parse(request.responseText)

下面是IE7和其他旧浏览器的一个示例

要将对象转换为JSON字符串,请使用
JSON.stringify({foo:1})

确定是否需要垫片,你可以简单地做

if(JSON){
    // safe to use the JSON object
}
根据您的评论,您有一些无效语法:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1 "value3": 15 "value4": 15 }]
某些属性缺少分隔它们的逗号。它应该是这样的:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1, "value3": 15, "value4": 15}]
请注意,您发布的是一个数组。无需使用
JSON.parse()
。就JSON而言,唯一有效的方法是将其字符串化为JSON
string
。但我不认为这就是你想要的

但是,如果是您提供给我的evauled字符串,则应将
eval()
替换为
JSON.parse()

JSON.parse(request.responseText)

下面是IE7和其他旧浏览器的一个示例

要将对象转换为JSON字符串,请使用
JSON.stringify({foo:1})

确定是否需要垫片,你可以简单地做

if(JSON){
    // safe to use the JSON object
}
根据您的评论,您有一些无效语法:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1 "value3": 15 "value4": 15 }]
某些属性缺少分隔它们的逗号。它应该是这样的:

[{ "date": "22/03/14", "value1": 15, "value2": 12.1, "value3": 15, "value4": 15}]
请注意,您发布的是一个数组。无需使用
JSON.parse()
。就JSON而言,唯一有效的方法是将其字符串化为JSON
string
。但我不认为这就是你想要的

但是,如果是您提供给我的evauled字符串,则应将
eval()
替换为
JSON.parse()

错误

未捕获的语法错误:意外字符串

可能是由于responseText变量中的数据错误造成的

我还面临eval()函数的问题。然后我调试(使用F12键),发现responseText中的数据不正确

在更正responseText中的数据后,eval()函数对我来说工作正常。

错误

未捕获的语法错误:意外字符串

可能是由于responseText变量中的数据错误造成的

我还面临eval()函数的问题。然后我调试(使用F12键),发现responseText中的数据不正确

在更正responseText中的数据后,eval()函数对我来说工作正常。

错误

未捕获的语法错误:意外字符串

可能是由于responseText变量中的数据错误造成的

我还面临eval()函数的问题。然后我调试(使用F12键),发现responseText中的数据不正确

在更正responseText中的数据后,eval()函数对我来说工作正常。

错误

未捕获的语法错误:意外字符串

可能是由于responseText变量中的数据错误造成的

我还面临eval()函数的问题。然后我调试(使用F12键),发现responseText中的数据不正确


更正responseText中的数据后,eval()函数对我来说运行良好。

eval
用于将字符串作为脚本进行计算,而不是
json对象。使用
json.parse()
解析json-而不是
eval()
…console.log(request.responseText)?
eval
用于将字符串作为脚本进行计算,它不适用于
json对象
。使用
json.parse()
来解析json-not
eval()
…console.log(request.responseText)?
eval
用于将字符串作为脚本进行评估,而不是
json对象
。使用
json.parse()
来解析json-not
eval>