我一直在努力用 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'
}
}
});