不使用jQuery解析JSON的Javascript
下面是amCharts中的示例,但我无法从PHP文件加载JSON,这就是我所做的:不使用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.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而言,唯一有效的方法是将其字符串化为JSONstring
。但我不认为这就是你想要的
但是,如果是您提供给我的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而言,唯一有效的方法是将其字符串化为JSONstring
。但我不认为这就是你想要的
但是,如果是您提供给我的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而言,唯一有效的方法是将其字符串化为JSONstring
。但我不认为这就是你想要的
但是,如果是您提供给我的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而言,唯一有效的方法是将其字符串化为JSONstring
。但我不认为这就是你想要的
但是,如果是您提供给我的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-noteval()
…console.log(request.responseText)?eval
用于将字符串作为脚本进行评估,而不是json对象
。使用json.parse()
来解析json-noteval>