ツリー グリッドに json データを入力するのに苦労しています。データベースからデータを読み取り、それをツリー グリッドにロードしています。
データベースから取得した json データは、以下に示すのと同様の形式です。
{ "data": [{
"bike": "Yamaha",
"color": "Black",
"cost": 870000
},{
"bike": "Honda",
"color": "Red",
"cost": 675000
},{
"bike": "Honda",
"color": "Blue",
"cost": 690000
},{
"bike": "Suzuki",
"color": "White",
"cost": 800000"
},{
"bike": "Harley",
"color": "Yellow",
"cost": 980000
},{
"bike": "Harley",
"color": "Black",
"cost": 880000
}]}
私のツリー パネルでは、最初の列はツリー列です。ツリーパネルに以下のプロパティを設定しました
displayField: 'bike',
rootVisible: false,
useArrows: true,
ツリーグリッドにロードすることはできますが、各データはツリーの個別のノードに表示されます。これは、json 構造がツリーに適していないためです。
以下に示すように、jsonデータを特定の形式に変換またはネストしたい:
{"data": [{
"bike": "Yamaha",
"data": [{
"bike": "Yamaha",
"color": "Black",
"cost": 870000
}]
},{
"bike": "Honda",
"data": [{
"bike": "Honda",
"color": "Red",
"cost": 675000
},
{
"bike": "Honda",
"color": "Blue",
"cost": 690000
}]
},{
"bike": "Suzuki",
"data": [{
"bike": "Suzuki",
"color": "White",
"cost": 800000"
}]
},{
"bike": "Harley",
"data": [{
"bike": "Harley",
"color": "Yellow",
"cost": 980000
}]
},{
"bike": "Harley",
"data": [{
"bike": "Harley",
"color": "Black",
"cost": 880000
}]
}]}
以下の出力を取得できるように..
json データの変換方法がわかりません。ウェブで適切な解決策を見つけることができませんでした。助けてください
私の店はこんな感じです。
var MyStore = Ext.create('Ext.data.TreeStore', {
autoLoad: true,
autoSync: true,
storeId: 'MyStore',
model: 'model',
proxy: {
type: 'ajax',
api: {
read: 'http://localhost/Files/data.json'
},
reader: {
type: 'json',
messageProperty: 'message',
successProperty: 'success',
root: 'data',
totalProperty: 'total'
}
}
});