jquery json parse - 外部文件出错(相同数据)

时间:2014-09-08 23:47:41

标签: javascript jquery json

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

http://jsfiddle.net/bw85zeea/

我的问题是,当我尝试通过外部文件加载“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验证员说,没关系。关于我缺少的任何想法?

问候。

2 个答案:

答案 0 :(得分:0)

确保您的服务器发送了正确的MIME类型( application / json

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

<?php

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

readfile('dig.json');

?>

答案 1 :(得分:0)

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

http://jsfiddle.net/qca6tmvb/

$(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);
    });
});