有效JSON上的jQuery getJSON语法错误
我有以下json文档有效JSON上的jQuery getJSON语法错误,jquery,json,ajax,firefox,mime-types,Jquery,Json,Ajax,Firefox,Mime Types,我有以下json文档 // json.json [ { "title":"title1", "value":12234 }, { "title":"title2", "value":"some text" }, { "title":"title3", "value":"12qwerty234" }, { "title":"title4",
// json.json
[
{
"title":"title1",
"value":12234
},
{
"title":"title2",
"value":"some text"
},
{
"title":"title3",
"value":"12qwerty234"
},
{
"title":"title4",
"value":123.5
}
]
我正在使用jQuery加载它。代码如下:
$(document).ready(function(){
$.getJSON("json.json", {},function(result){
$.each(result, function(i, obj) {
$("form").append($('<label for="'+i+'">'+obj.title+'</label>'));
$("form").append($('<input id="'+i+'" value="'+obj.value+'" type="text"/><br>'));
});
});
});
$(文档).ready(函数(){
$.getJSON(“json.json”,{},函数(结果){
$。每个(结果、功能(i、obj){
$(“表格”)。追加($(''+对象标题+'');
$(“表格”)。追加($(“
”);
});
});
});
我的问题是,我在Firefox中遇到了语法错误。我将json.json
作为本地文件加载。
这是一个屏幕截图(错误显示“第1行出现语法错误”)
注意,该表单已成功生成
编辑:
下面是运行pythonSimpleHTTPServer
时Chrome的另一个屏幕截图:
我认为,由于json文件是本地文件而产生的错误。尝试使用您的Web服务器加载,如nginx或apache。发生这种情况的原因是您使用的是本地文件,因此隐含了“text/xml”的mime类型,因此Firefox将尝试将其作为xml解析为基础XHR对象的
.responseXML
。这当然是失败的
您可以忽略这一点,或者自己指定mimeType
:
$.ajax({
dataType: "json",
url: "json.json",
mimeType: "application/json",
success: function(result){
$.each(result, function(i, obj) {
$("form").append($('<label for="'+i+'">'+obj.title+'</label>'));
$("form").append($('<input id="'+i+'" value="'+obj.value+'" type="text"/><br>'));
});
}
});
$.ajax({
数据类型:“json”,
url:“json.json”,
mimeType:“应用程序/json”,
成功:功能(结果){
$。每个(结果、功能(i、obj){
$(“表格”)。追加($(''+对象标题+'');
$(“表格”)。追加($(“
”);
});
}
});
PS:使用普通XHR您将使用我在Web服务器上运行了相同的代码,没有生成语法错误。当从加载时,它会生成语法错误file:///. 所以,这基本上就是“方案”。我在设置正确的json时,遇到了json中语法错误4的相同问题 我无法找到解决方案,然后我使用了一个技巧,将json转换为php数组。 如果你觉得它有用的话,你也可以用它 示例代码:
$json = '
{
}",
$json=str_replace(“{”,”,$json);
$json=str_replace(“}”、“”、$json)
$jsonArr=explode(“,”,$json);
$jsonArray=array()
foreach($jsonArr作为$json){
}
打印(jsonArray) 错误说明了什么?没什么,它只是指向json文件的第一行。我刚刚在Firefox(23.0.1)上测试过,它对我来说很好。JSON文件是否包含不可见字符?尝试通过复制和粘贴帖子中的JSON来重新创建JSON文件。您是否将该JSON文件保存为UTF8?我尝试从我的目录中运行
python-m SimpleHTTPServer
,但没有成功。它应该是吗?是的,它应该工作得很好。最后用Python版本2.7.3对它进行了测试,没有出现任何错误。我在localhost/local xml上也失败了,使用了overrideMimeType(“application/json;charset=UTF16”)对字符,如u,ä,ö
"title":"title4",
"value":123.5
$jsonTmpArr = explode(":", $json);
$jsonArray[trim($jsonTmpArr[0])] = trim($jsonTmpArr[1]);