/ / Sencha Touch - Memorizza dati JSON non analizzati - javascript, json, sencha-touch

Sencha Touch - Store non analizza dati JSON - javascript, json, sencha-touch

Ho un negozio che ottiene dati JSON da un servizio WCF. Il negozio sta chiamando il servizio web e sta recuperando i dati, ma il mio grafico non mostra ancora dati, quindi presumo che non lo stia analizzando correttamente.

Ecco il mio codice:

// Define Model
Ext.regModel("chart1model", {
fields: [
{name: "name", type: "string"},
{name: "data", type: "string"}
]
});


var store1 = new Ext.data.Store({
model: "chart1model",
proxy: {
type: "ajax",
url: "http://localhost:8523/WebService/GetChartData?chartType=1",
reader: {
type: "json"
}
},
autoLoad: true
});

Se prendo gli stessi dati e creo lo Store da solo, il grafico viene visualizzato correttamente:

var store1 = new Ext.data.JsonStore({
fields: ["name", "data"],
data: [
{"name":"Nov-09","data":0},{"name":"Nov-10","data":0},{"name":"Nov-11","data":0},{"name":"Nov-12","data":0},{"name":"Nov-13","data":0},{"name":"Nov-14","data":0},{"name":"Nov-15","data":0},{"name":"Nov-16","data":0},{"name":"Nov-17","data":0},{"name":"Nov-18","data":0},{"name":"Nov-19","data":0},{"name":"Nov-20","data":0},{"name":"Nov-21","data":0},{"name":"Nov-22","data":0},{"name":"Nov-23","data":0},{"name":"Nov-24","data":0},{"name":"Nov-25","data":0},{"name":"Nov-26","data":0},{"name":"Nov-27","data":0},{"name":"Nov-28","data":0},{"name":"Nov-29","data":0},{"name":"Nov-30","data":0}
]
});

Non sono sicuro di cosa sto facendo di sbagliato. Qualsiasi aiuto sarebbe molto apprezzato.

risposte:

0 per risposta № 1

I dati JSON nel tuo esempio hanno virgolette singole e questo non è un JSON valido. Puoi controllare i tuoi dati JSON su http://www.jsonlint.com. Assicurati di utilizzare virgolette doppie nei dati JSON.


0 per risposta № 2

Hai verificato che i dati finiscano in negozio?

In secondo luogo, il tipo di dati per il campo "dati" non è corretto. Ovviamente è un numero, ma lo hai specificato come stringa.


0 per risposta № 3

Si è scoperto che era perché tornava come una stringa e non come JSON. Lanciarlo come JSON ha funzionato:

return $.parseJSON(result);