2010-12-09 3 views
0

Я пытаюсь напечатать JSON, что я получаю так:Печать JSON из переменной в Javascript

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

в датасторе ExtJS, который выглядит следующим образом:

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 как:

var jsonfields; 

Это первое, что я делаю в теге скрипта. Я знаю, что его значение обновляется из-за предупреждения. Итак, как это отличается от отображения JSON из предустановленной переменной по сравнению с тем, когда я жестко программирую его?

Спасибо!

ОБНОВЛЕНИЯ: Я также могу увидеть ответ ajax-запроса в хром-инструментах разработчика XHR, он выглядит так же: ["ping"], ["location"], ["death"], [ «рождение»], [ «DeviceInfo»]

alert(typeof jsonfields); 

Возвращает «строка»

+2

`[" ping "], [" location "], [" death "], [" birth "], [" DeviceInfo "]` не похоже на действительный JSON. – 2010-12-09 22:38:43

+0

Я думаю, что они являются несколькими JSONs с разделителями-запятыми, то есть как структурированы образцы данных, они правильно отображаются, когда данные вводятся вручную в хранилище. – 2010-12-09 22:40:15

ответ

1

было бы лучше, чтобы исправить сервер таким образом, он производит действительный JSON, а затем использовать Ext.data.JsonStore

Если вы не можете исправьте сервер здесь очень ручное решение:

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'], ... 
]);