我今天早上 剛纔問這個問題:「這是我的JSON文件:計數JSON線動態
[
{
"Week": "1145",
"Sev_Logged": "3_major",
"From": "IN1"
},
{
"Week": "1145",
"Sev_Logged": "4_minor",
"From": "IN1"
},
{
"Week": "1145",
"Sev_Logged": "4_minor",
"From": "IN1"
},
{
"Week": "1145",
"Sev_Logged": "4_minor",
"From": "IN1"
},
{
"Week": "1145",
"Sev_Logged": "4_minor",
"From": "IN1"
},
{
"Week": "1145",
"Sev_Logged": "4_minor",
"From": "IN2"
},
{
"Week": "1145",
"Sev_Logged": "3_major",
"From": "IN2"
},
];
我要算‘來自:IN1’字段爲每個‘星期’,每例如一週:1145我會得到:3,而對於「來源:IN2」我會得到2個
感謝」
謝謝VDP的回答,所以我這樣做: 我的店現在是這樣的:
Ext.define('Metrics.store.GraphData', {
extend : 'Ext.data.Store',
model : 'Metrics.model.GraphData',
autoload : true,
proxy : {
type : 'ajax',
url : 'data/metrics_data.json',
reader : {
type : 'json',
root : 'data',
successProperty : 'success'
}
},
//data : GraphData, //povide inline data or load using proxy
countBy: function(param){
var count = {};
this.each(function(item){
var type = item.get(param);
if (Ext.isDefined(count[type])){
count[type]++;
} else {
count[type] = 1;
}
});
return count;
}
});
而且我的模型:
Ext.define('Metrics.model.GraphData', {
extend: 'Ext.data.Model',
//fields: ['week', 'sev']
fields : [
{name: 'Week', type: 'int'},
{name: 'Sev_Logged', type: 'string'},
{name: 'From', type: 'string'}
]
});
由於我使用的ExtJS 4 MVC模式,我做了一個控制器至極控制按鈕的情況下,現在它看起來是這樣的:
launchGraph : function(button){
console.log('clicked the apply button');
var chartStore = this.getGraphDataStore();
chartStore.load({
callback: this.onGraphDataLoad,
scope: this,
console.log(chartStore.countBy("From"))
});
但是,當我點擊申請按鈕我得到這個錯誤在我的控制器:
"Uncaught SyntaxError: Unexpected token . "
而且這點' o線:
"console.log(chartStore.countBy("From"))"
這似乎是我在我的商店引用錯誤。有任何想法嗎?
你甚至不知道如何分析你的JSON字符串對象的JavaScript數組? –
@ÁlvaroG.Vicario,我實際上使用extjs 4,但我不知道如何解析我的Json文件。我使用這些數據來繪製圖表,所以我需要對它們進行計數。 – salamey
通過在chartStore.load之外放置「console.log(chartStore.countBy(」From「))」行來修復好問題。 – salamey