Extjs 使用Ext.JSON.encode封裝json格式的數據

先看如下例子:
                        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的數組的嵌套一下就行了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章