有效JSON上的jQuery getJSON语法错误
我有以下json文档
// 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($('')); $("form").append($('
')); }); }); });
我的问题是,我在Firefox中遇到语法错误。 我加载json.json
作为本地文件。 这是一个截图( 错误显示“第1行的语法错误” )
请注意,该表单已成功生成。
编辑:这是Chrome运行python SimpleHTTPServer
时的另一个屏幕截图:
发生这种情况的原因是因为您使用的是本地文件,因此暗示了mime类型的“text / xml”,因此Firefox会尝试将其解析为基础XHR对象的.responseXML
中的XML。 这当然失败了。
您可以忽略它,或者自己指定mimeType
:
$.ajax({ dataType: "json", url: "json.json", mimeType: "application/json", success: function(result){ $.each(result, function(i, obj) { $("form").append($('')); $("form").append($('
')); }); } });
PS:使用普通XHR你会使用overrideMimeType()
我在网络服务器上运行相同的代码,没有生成语法错误。 虽然从file:///加载时会产生语法错误。 所以,它基本上就是“计划”。
我认为,因为json文件而产生的错误是本地文件。 尝试加载您的网络服务器,如nginx或apache。
我在json中遇到了同样的语法错误4问题,而我有正确的json设置。
我无法找到解决方案,然后我使用了将json制作成php数组的技巧。 如果你觉得它很有用,你也可以使用它。
示例代码:
$json = '
{
"title":"title4", "value":123.5
}’;
$ json = str_replace(“{”,“”,$ json); $ json = str_replace(“}”,“”,$ json);
$ jsonArr = explode(“,”,$ json); $ jsonArray = array();
foreach($ jsonArr as $ json){
$jsonTmpArr = explode(":", $json); $jsonArray[trim($jsonTmpArr[0])] = trim($jsonTmpArr[1]);
}
的print_r($ JSONArray),其中,