搜尋

首頁  >  問答  >  主體

javascript - js解析多層嵌套json數據,遞歸調用

需要處理介面傳回的json數據,轉為Easyui Tree可以接收的資料格式,怎麼處理多層的json數據,json的資料回傳大小不一定,屬性也有變化,結構類似,只有@desc是根目錄

範例:
{

"srvcfg": {
    "tokenswitch": {
        "token_switch": {
            "#text": "0",
            "@desc": "切换开关"
        },
        "@desc": "token切换"
    },
    "commoncfg": {
        "srvtype": {
            "count": {
                "#text": "1",
                "@desc": "数量"
            },
            "srvtypeid1": {
                "#text": "28900",
                "@desc": "类型"
            },
            "@desc": "SrvTypeID的数量"
        },
        "binanry_msg_queue": {
            "count": {
                "#text": "2",
                "@desc": "消息队列数量"
            },
            "queuenum1": {
                "#text": "10000",
                "@desc": "消息队列号"
            },
            "queuenum2": {
                "#text": "20000",
                "@desc": "消息队列最小长度"
            },
            "queuesize1": {
                "#text": "300",
                "@desc": "小消息队列"
            },
            "queuesize2": {
                "#text": "10000",
                "@desc": "消息队列最大长度"
            },
            "@desc": "消息队列配置"
        },
        "srv_pwd": {
            "count": {
                "#text": "1",
                "@desc": "约定密码数量"
            },
            "srvtypeid1": {
                "#text": "28900",
                "@desc": "端口"
            },
            "pwd1": {
                "#text": "dtvspwd",
                "@desc": "dtvs密码"
            },
            "@desc": "服务器之间约定的密码"
        },
        "@desc": "这是SrvTypeID规定"
    }
}

}

学习ing学习ing2737 天前1114

全部回覆(1)我來回復

  • 高洛峰

    高洛峰2017-06-28 09:24:18

    首先我們來分析一波,資料結構不管是什麼樣的,人去解析和機器去解析肯定是透過型別type。

    1. 是裡面有type型,如a、b、c什麼的,如果是這樣我們一定可以對應不同的型別設定不同的解析方案。

    2. 沒有一個明確的type來標識,用的是名字,name和age肯定是兩種不同的東西,那我們就可以透過key來判斷了。

    對於json裡面有不是命名規則的東西,我們可以用過[]來存取

    回覆
    0
  • 取消回覆