gpt4 book ai didi

json - 如何加载具有多个根元素的 json 存储?

转载 作者:行者123 更新时间:2023-12-04 19:11:39 27 4
gpt4 key购买 nike

在我的一个项目中,我需要使用 JSOn 服务器响应加载 Json 存储,如下所示。在 JSon 响应中,我得到 2-3 个根元素。但在商店配置中,我只能提供 1 个根元素。

{
{"level2List":[{id:'id1', name:'sample'},....]},
{"level3List":[{id:'id1', name:'sample'},....]},
{"level4List":[{id:'id1', name:'sample'},....]}
}

我的商店配置如下。
store = new Ext.data.JsonStore({
// store configs
storeId: 'myStore',
proxy: {
type: 'ajax',
url: 'xml/getKpiInputData.json',
reader: {
type: 'json',
root: 'level3List',
idProperty: 'name'
}
},
fields: [
{name: 'name'},
{name: 'id'},
...
],
remoteFilter: false,
remoteSort: true,
pageSize: 10,
autoLoad: {start: 0, limit: 10}
});

如果我给出 1 个根元素(例如 level3List),它会正确加载相应的项目。但我需要从多个根元素加载数据的解决方案。请帮我将数据加载到商店。

最佳答案

如果您使用的是 4.x,则 root 参数可以是一个函数:

Ext.define('MyModel', {
extend: 'Ext.data.Model',
fields: ['name']
});

Ext.require('*');

Ext.onReady(function(){

var store = new Ext.data.Store({
model: MyModel,
proxy: {
type: 'memory',
reader: {
type: 'json',
root: function(o){
var out = [];
return out.concat(o.root1, o.root2, o.root3);
}
}
},
data: {
root1: [{
name: 'Item 1'
}],
root2: [{
name: 'Item 2'
}],
root3: [{
name: 'Item 3'
}]
}
});

store.load();
console.log(store.getCount());
});

关于json - 如何加载具有多个根元素的 json 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14452955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com