这有什么区别呢?
这很好用:
var obj1 = jQuery.parseJSON('{"orderedList": "true"}');
document.write("obj1 "+ obj1.orderedList );
Run Code Online (Sandbox Code Playgroud)
但以下不起作用:
var obj2 = jQuery.parseJSON("{'orderedList': 'true'}");
document.write("obj2 "+ obj2.orderedList );
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我正在做一个像这样的winJS.xhr:
var jsonResult;
WinJS.xhr(
{
url: urlGoogle,
responseType: 'json'
}
).done(function complete(response) {
jsonResult = response.responseText;
console.log(jsonResult);
},
//Error and Progress functions
);
Run Code Online (Sandbox Code Playgroud)
控制台日志向我显示:
{lhs: "32 Japanese yen",rhs: "0.30613818 Euros",error: "",icc: true}
Run Code Online (Sandbox Code Playgroud)
我想得到rhs信息.所以我尝试了
console.log(jsonResult.rhs);
Run Code Online (Sandbox Code Playgroud)
和
console.log(jsonResult['rhs']);
Run Code Online (Sandbox Code Playgroud)
它只显示我"未定义".然后我意识到,当我做了一个jsonResult [0]时,它会显示第一个字符(即{)等等,并带有索引括号.
我试着做一个JSON.parse(jsonResult); 但它会造成错误
json parse unexpected character
Run Code Online (Sandbox Code Playgroud) 我有一个静态网站,我在本地机器上使用jetty服务器(用于测试)和github页面(实时)运行.
两个站点的源代码完全相同.我使用相同的浏览器(Mozilla Firefox)进行下面的测试我最近使用以下代码来获取jQuery Ajax
$.ajax({
url: jsonFilePath,
error: function (response) {... },
success: function (responsedata) {
var responsedata = JSON.parse(latestData);
...
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的本地服务器上运行时工作正常,但在github服务器(相同的浏览器)上运行时失败
由于这个原因,它在github上失败了.它在定义dataType之后开始工作,如下所示
$.ajax({
url: jsonFilePath,
dataType: "json",
...
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么在本地服务器上测试期间没有捕获到这个?所有的liberaries,data,json,js,jQuery文件都是一样的.可能导致这种行为差异的原因是什么?