从Javascript中的变量打印JSON
我正试图打印一个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,'
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
电话?非常感谢你,先生,你是个天才