Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript中的变量打印JSON_Javascript_Extjs - Fatal编程技术网

从Javascript中的变量打印JSON

从Javascript中的变量打印JSON,javascript,extjs,Javascript,Extjs,我正试图打印一个JSON,结果如下: jsonfields = $.ajax({ url: "ajax.php?getsensors="+raw.deviceId, async: false }).responseText; Ext.grid.dummyData = [ //jsonfields, //["ping"],["location"],["death"],["birth"],["DeviceInfo"], ['3m Co',71.72,0.02,0.03,'

我正试图打印一个JSON,结果如下:

jsonfields = $.ajax({
url: "ajax.php?getsensors="+raw.deviceId, 
async: false
}).responseText;
Ext.grid.dummyData = [
    //jsonfields,
    //["ping"],["location"],["death"],["birth"],["DeviceInfo"],
    ['3m Co',71.72,0.02,0.03,'4/2 12:00am', 'Manufacturing'],
    ['Alcoa Inc',29.01,0.42,1.47,'4/1 12:00am', 'Manufacturing'], ...
进入一个如下所示的ExtJS数据存储:

jsonfields = $.ajax({
url: "ajax.php?getsensors="+raw.deviceId, 
async: false
}).responseText;
Ext.grid.dummyData = [
    //jsonfields,
    //["ping"],["location"],["death"],["birth"],["DeviceInfo"],
    ['3m Co',71.72,0.02,0.03,'4/2 12:00am', 'Manufacturing'],
    ['Alcoa Inc',29.01,0.42,1.47,'4/1 12:00am', 'Manufacturing'], ...
因此,当我向变量“jsonfields”发出警报时,它会发出警报

["ping"],["location"],["death"],["birth"],["DeviceInfo"]
但是它根本不会呈现到网格中,但是当我将上面的代码硬编码到json中时,它会呈现。我将jsonfields变量设置为:

var jsonfields; 
这是我在script标签中做的第一件事。我知道它的值由于警报而更新。那么,与我硬编码的时候相比,显示来自预设变量的JSON有什么不同呢

谢谢

更新:我还可以在chrome开发者工具XHR中看到ajax请求的响应,它的结构似乎是相同的:[“ping”],[“location”],[“death”],[“birth”],[“DeviceInfo”]


返回“string”

最好更正服务器,使其生成有效的JSON,然后使用

如果您无法更正服务器,这里有一个非常手动的解决方案:

jsonfields = Ext.decode('[' + $.ajax({
    url: "ajax.php?getsensors="+raw.deviceId, 
    async: false
}).responseText + ']');

Ext.grid.dummyData = jsonfields.concat([
    ['3m Co',71.72,0.02,0.03,'4/2 12:00am', 'Manufacturing'],
    ['Alcoa Inc',29.01,0.42,1.47,'4/1 12:00am', 'Manufacturing'], ...
]);

[“ping”]、[“location”]、[“death”]、[“birth”]、[“DeviceInfo”]
看起来不像有效的JSON。我认为它们是多个JSON,以逗号分隔,这就是示例数据的结构,当数据手动输入存储时,它会正确呈现。如果添加
数据类型:“JSON”,会发生什么
打给你的
$.ajax
电话?非常感谢你,先生,你是个天才