2015-02-23 37 views
0

串JSON文件我有一个小的JavaScript的Web应用程序,在一个硬编码字符串读取JSON格式如下(这是脚本本身内部):阅读来自服务器的JavaScript

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

但是没有什么来自这个。

+0

http://blog.slaks.net/2015-01-04/async-method-patterns/ – SLaks 2015-02-23 21:18:30

回答

1

当我需要类似的东西,我用getJSON(),这是一个速记你想要什么。

您可以使用它像:

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

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

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

希望它有帮助!

+0

非常感谢你! – Cybernetic 2015-02-23 21:49:24

+0

很高兴帮助! =) – 2015-02-23 21:58:41

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"} 
     ]} 
    ] 
} 
+0

是的,你是对的... json也是一个问题。谢谢。 – Cybernetic 2015-02-23 21:50:21

+0

你可以用你的javascript使用这个json(使用$ .ajax();)。也会工作。 – 2015-02-23 22:53:45