2010-12-09 13 views
0

Ich versuche, eine JSON zu drucken, die ich wie diese:Drucken JSON von Variable in Javascript

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

in ein ExtJS-Datenspeicher, der wie folgt aussieht: So

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

, wenn ich die alarmieren Variable ‚jsonfields‘ es alarmiert

["ping"],["location"],["death"],["birth"],["DeviceInfo"] 

aber es an das Netz überhaupt nicht machen, aber wenn ich hart Code der Zeile eines bove in den json, es macht rendern. Ich setze meine jsonfields var wie:

var jsonfields; 

Dies ist das erste, was ich in der Skript-Tag. Ich weiß, dass der Wert aufgrund der Warnung aktualisiert wird. Also, wie unterscheidet es sich von der Anzeige der JSON von einer voreingestellten Variable im Vergleich zu wenn ich es fest einprogrammiere?

Danke!

UPDATES: Ich kann auch die Antwort der AJAX-Anfrage in der Chrome-Entwickler-Tools XHR sehen, es scheint die gleiche Struktur: ["Ping"], ["Ort"], ["Tod"], [ "Geburt"], [ "Deviceinfo"]

alert(typeof jsonfields); 

Returns "string"

+2

'[" ping "], [" Standort "], [" Tod "], [" Geburt "], [" DeviceInfo "]' sieht nicht wie gültiger JSON aus. –

+0

Ich denke, sie sind mehrere JSONs Komma-Trennzeichen, so wie die Beispieldaten strukturiert ist, wird es richtig wiedergegeben, wenn die Daten manuell in den Laden eingegeben werden. –

+0

Was passiert, wenn Sie 'datentyp:" json "' zu Ihrem '$ .ajax' Aufruf hinzufügen? – nico

Antwort

1

es wäre besser, den Server zu korrigieren, damit es gültig JSON erzeugt und eine dann verwenden Ext.data.JsonStore

Wenn Sie sich nicht Korrigiere den Server hier ist eine sehr manuelle Lösung:

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

Vielen Dank, Sie sind ein Genie, Sir –