在javascript中从服务器读取json文件作为字符串

时间:2015-02-23 21:16:50

标签: javascript json

我有一个小的javascript Web应用程序,它以json格式读取硬编码字符串,如下所示(这是在脚本本身内):

root = {
    "name": "John", "imageURL":"images/root.png","id":"1",
        "children": [
             {"name": "project", "imageURL":"cool.png","id":"2",
             "children":[{"name": "ideas", "imageURL":"object1.png","id":"3"},
                      {"name": "boards", "imageURL":"object2.png","id":"46"}
]},
]
};
然后

D3.js使用它来渲染其图像。相反,我想从位于服务器上的file.json(与Web应用程序相同的目录)中读取此json。我想我必须使用AJAX。我试过这个:

var output = "";
$.ajax({
url: "file.json",
type: 'Get',
dataType: "json",
success: function (result) {
    output = result; 
}
});

但没有任何东西来自于此。

2 个答案:

答案 0 :(得分:1)

file.json需要是一个有效的json文件,替换它的内容:

{
    "name": "John", "imageURL":"images/root.png","id":"1",
        "children": [
             {"name": "project", "imageURL":"cool.png","id":"2",
             "children":[{"name": "ideas", "imageURL":"object1.png","id":"3"},
                      {"name": "boards", "imageURL":"object2.png","id":"46"}
        ]}
    ]
}

答案 1 :(得分:1)

当我需要这样的东西时,我使用了getJSON(),这是你想要的简写。

你可以这样使用它:

$.getJSON('file.json', function(data) {
    // Do something with your data
});

但是,首先,检查你的JSON。您共享的JSON无效,因为它有一个不应该存在的逗号。

我总是使用像JSONLint这样的验证器来确定这一点。

希望它有所帮助!