ExtJS:计算json键的值数

时间:2013-11-19 21:11:24

标签: json extjs coffeescript

我正在研究用coffescript编写的ExtJS MVC样式应用程序,我只想返回分配给“key2”的值的数量。

在这个例子中,我想回到2号。

然而,在下面的例子中,我得到“11”。任何见解将不胜感激。

// JSON
"data" : [{
     "key1" : "value",
     "key2" : ["valu1", "valu2"]
]}

//Model
Ext.define("Test.model.Values",
    extend: "Ext.data.Model"

   fields: [
       name: "key1"
       type: "string"
   ,
       name: "values"
       type: "string"
       convert: (value, record) ->
         return record.get("key2").length
   ]

1 个答案:

答案 0 :(得分:1)

设置

type: "string"

在包含数组的字段上,如:

["valu1", "valu2"] 

会将值强制为字符串:

"valu1,valu2"

在这种情况下恰好是11个字符。

首先,您需要为“key2”定义一个字段,以便从您的数据中读取它,然后确保不要明确设置类型。

fields: [{
   name: "key1",
   type: "string",
},{
   name: "key2"
},{
   name: "values",
   convert: function(value, record){
     return record.get("key2").length
   }
}]