如何使用Dojo读取JSON文件

时间:2011-03-15 11:25:54

标签: dojo

如何使用Dojo读取JSOn文件?

4 个答案:

答案 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