如何将JSON格式文件转换为JSON对象?

时间:2013-11-19 10:08:31

标签: javascript json dojo

我使用dojo request.get以JSON格式读取txt文件,但无法将其转换为JSON对象。 “datagrid.txt”将一些数据存储为:

[
{"col1":"val1", "col2":"val2", "col3":"val3"},
{"col1":"val1", "col2":"val2", "col3":"val3"},
{"col1":"val1", "col2":"val2", "col3":"val3"}
]

请求客户端代码如下:

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/dom', 'dojo/request', 'dojo/domReady!'],
function(lang, DataGrid, ItemFileWriteStore, dom, request){ 

request.get("datagrid.txt",{
       // Parse data from JSON to a JavaScript object
        handleAs: "json"
    }
).then(
    function(text){          
        var datalist = JSON.stringify(text);            
        for(var i = 0, l = 16; i < l; i++){
            console.log( datalist[i] );             
        }
            });

console.log以字符串形式显示内容(例如“[”,“{”),而不是我期望的数组({“col1”:“val1”,“col2”:“val2”,“col3” “:”val3“}),我可以用来填充dojo datagrid数据存储。

2 个答案:

答案 0 :(得分:0)

Dojo可以自己处理JSON格式。 Official docs

答案 1 :(得分:0)

我认为您的问题在于您编写datagrid.txt的方式以及稍后尝试读取数据的样式。

这是我的解决方案:

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore',
'dojo/dom', 'dojo/request', 'dojo/domReady!'],

function(lang, DataGrid, ItemFileWriteStore, dom, request){ 
request.get("datagrid.txt",{
   // Parse data from JSON to a JavaScript object
    handleAs: "json"
}
).then(
function(text){          
    var datalist = [];
     dojo.forEach(text,function(thisText,i){
     //add each single Object from the datagrid.txt to datagrid-array
     datalist.push(thisText);  
     //alert the newly added item in datagrid
     console.log(datalist);             
      });
   });

我认为这应该可以解决您的问题。 此致,Miriam

相关问题