我希望在我的json对象中有一个名为idField的属性。现在,如果该属性包含多个元素,则该属性可以是数组,如果它包含一个元素,则只是一个对象。我希望从extjs商店中的数据创建这样的属性。本质上,如果商店只包含一个元素,我需要在json对象中插入这个idField'对象',否则我需要在json对象中插入一个名为idField的'数组'。请告知如何做到这一点。
编辑:
我的商店在其数据中有2列,即'name'和'type'。我希望如果它只包含一个元素,那么我的对象应该是这样的:
{
...
idField : {
name : ...
type : ...
}
}
如果我的商店包含2行,那么我的对象应如下所示:
{
...
idField : [
{
name : ...
type : ...
},
{
name : ...
type : ...
}
]
}
此外,我必须在对象内插入此idField属性。目标中还没有当前的idField属性。
编辑2:
我在编写console.log(Ext.getStore("My_store_name").data)
答案 0 :(得分:2)
从EXT JS商店获取数据
var data = Ext.getStore("Your_Store_Name").data
在我的下面的代码片段中,我假设您希望从字段名称中获取名为item的值。
var data = Ext.getStore("Your_Store_Name").data
//imagine your JSON where you need to store is in variable myJSON
if (data.items.length == 1){
myJSON.idField = {type: 'sometype', name: data.item[0]} }
else if (data.item.length > 1)
{ //make an array of JSON
var list = [];
for(var i = 0; i < data.item.length; i++)
{
list.push({type: 'sometype', name: data.item[i]})
}
myJSON.idField = list; //set the array
}