Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery json解析-外部文件错误(相同数据)_Javascript_Jquery_Json - Fatal编程技术网

Javascript jquery json解析-外部文件错误(相同数据)

Javascript jquery json解析-外部文件错误(相同数据),javascript,jquery,json,Javascript,Jquery,Json,我需要解析一个json文件(使用jquery)。工作样本: 我的问题是,当我试图通过外部文件加载“data2”时,浏览器会抱怨它的格式无效 var data2; $.getJSON('dig.json') .done(function (data) { data2 = data; }); dig.json中的内容是: [{"type":"Text","id":"f3e555e7-2a89-478c-a23c-feaabb454ef5","name":"Hello!","next":"ebc8

我需要解析一个json文件(使用jquery)。工作样本:

我的问题是,当我试图通过外部文件加载“data2”时,浏览器会抱怨它的格式无效

var data2;
$.getJSON('dig.json')
.done(function (data) {
data2 = data;
});
dig.json中的内容是:

[{"type":"Text","id":"f3e555e7-2a89-478c-a23c-feaabb454ef5","name":"Hello!","next":"ebc8dbcf-4847-4da1-bef9-e18bb016b630"},{"type":"Text","id":"ebc8dbcf-4847-4da1-bef9-e18bb016b630","name":"Miko Miko","next":"6ffb5ab3-b5fa-4d0e-8ca6-b7b8f01e0dfc"},{"type":"Text","id":"6ffb5ab3-b5fa-4d0e-8ca6-b7b8f01e0dfc","name":"End","next":null}]
尝试添加“前后”,结果相同

根据json验证程序,这是可以的。你知道我遗漏了什么吗


问候。

确保服务器发送的MIME类型正确(应用程序/json

您可以使用PHP强制执行此操作。例如,您可以创建一个PHP脚本,将JSON文件发送到具有正确MIME类型的输出,如下所示:

<?php

header('Content-type: application/json');

readfile('dig.json');

?>

我用一把新小提琴重写了你的代码。。你可能想在这里查看这个链接


档案里一定有什么不相干的东西。检查Developer Tools/Firebug中网络选项卡的响应部分。感谢Barmar,不幸的是,响应部分(loads ok)中没有指示灯仍在获取:SyntaxError:JSON.parse:JSON数据JSON.html(línea 49,columna 8)第1行第1列的意外字符文件中肯定有一些无关的东西。是否可以从Internet访问
dig.json
?不会有“lights”,因为浏览器没有解析它,它只是原始数据。但是您应该查看JSON前后是否有额外的字符。可能是文件开头的BOM字符。我找不到该字符,可以在以下位置访问:Response似乎没问题(获得了我的3个对象)
$。getJSON
忽略内容类型并假定它是JSON。这有什么帮助?他的问题只是当他从外部URL获取JSON时,而不是从硬编码的JSON字符串。您的
jsonString
不是有效的JSON。在JSON中,必须引用对象键。是的,Barmar爵士,我看到了。4.我正在修改作业。。除息的
$(document).ready(function () {

    //var jsonString = '[{ name : "foo" }]';

    // JSON.parse not accepting placeholders so
    // i wrote the object inside instead

    var parsedJson = JSON.parse('[{ "name" : "foo" }]');

    //alert the value, the dom seems buggy
    alert(parsedJson[0].name);

    $.getJSON(parsedJson[0].name, function( data ) {
        alert(data);
    });
});