如何使用Dojo读取JSOn文件?
答案 0 :(得分:23)
在Dojo 1.8+中,要加载JSON文件(而不是XHR),请使用dojo / text加载文件,然后使用dojo / json进行解析。像这样:
require( [ 'dojo/json', 'dojo/text!/path/to/data.json' ],
function( JSON, data )
{
var data = JSON.parse( data );
} );
不是“!”在dojo / text之后,用于指定要加载的文件。
答案 1 :(得分:14)
这是一个广泛的问题。
如果您的意思是,如何制作服务器请求并在回程中将其自动视为JSON,您可以执行以下操作:
dojo.xhrGet({
url: "your/server/endpoint/here",
handleAs: "json",
load: function(obj) {
/* here, obj will already be a JS object deserialized from the JSON response */
},
error: function(err) {
/* this will execute if the response couldn't be converted to a JS object,
or if the request was unsuccessful altogether. */
}
});
注意上面的handleAs: "json"
,它告诉dojo.xhrGet
(或xhrPost等)在触发load
回调之前尝试将响应转换为JS对象。
http://dojotoolkit.org/reference-guide/dojo/xhrGet.html
单独地,如果您已经拥有一个JSON字符串并且只需要将其转换为JS对象,则Dojo为此设置dojo.fromJson(str)
(另一个方向为dojo.toJson(obj)
)。
答案 2 :(得分:1)
使用dojo 1.8: 将模块ID“dojo / request / xhr”添加到依赖项中,将xhr作为回调参数添加,然后:
xhr("path/to/file.json", {
handleAs: "json"
}).then(function(obj){
// do something with the obj
}, function(err){
// Handle the error condition
}, function(evt){
// Handle a progress event from the request if the
// browser supports XHR2
});
答案 3 :(得分:0)
您可以使用dojo / request模块:
SqlConnection