2015-02-23 38 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