有效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),其中,