将数组添加到extjs中的json对象

时间:2015-05-27 06:35:14

标签: javascript arrays json object extjs

我希望在我的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)

时在控制台中收到了此对象

1 个答案:

答案 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
}