var jsonArray = new Array();
for(var i = 0 ; i < items.length ; i++ ){
var values = items[i].getForm().getValues();
if(values.option != ""){
values.votenum == "" ? 0 : values.votenum;
var object = new Object();
object['oid'] = values.oid;
object['pid'] = values.pid;
object['option'] = values.option;
object['votenum'] = values.votenum;
jsonArray.push(object);
}
}
var json = Ext.JSON.encode(jsonArray);
在看Ext.JSON.encode在API中的解釋:encode( Object o ) : String
編碼對象、 數組或其他值。
如果環境中的原生JSON編碼沒有被使用 (Ext.USE_NATIVE_JSON 沒有設置,或環境不支持), 那麼將使用ExtJS的編碼。這裏允許開發人員在需要序列化的類中添加 toJSON 方法, 返回有效的 JSON 表示形式的對象。
Parameters
o : Object
要進行編碼的變量
Returns
String
JSON 字符串
從API中可以看出 encode的參數是一個Object對象。所以 我們要構造一個Object對象(也可以說是Array對象)的數據集合,然後使用Ext.JSON.encode將該對象變成一個JSON格式的字符串數據
上述例子中生成的JSON格式的數據如下:
[
{
"oid": "1",
"pid": "1",
"option": "M",
"votenum": "2"
},
{
"oid": "3",
"pid": "1",
"option": "RR HHHH",
"votenum": "0"
},
{
"oid": "1473412",
"pid": "1",
"option": "G大胖子“??\"GG",
"votenum": "0"
},
{
"oid": "1473419",
"pid": "1",
"option": "GGHH:::'\"\"\"\"",
"votenum": "0"
},
{
"oid": "1473420",
"pid": "1",
"option": "RRRHHHH",
"votenum": "0"
}
]
大家可以根據生成的json格式的數據,去看代碼,應該可以看懂。如果有多層嵌套,則組建javascript的數組的嵌套一下就行了