首页 >社区问答列表 >javascript - js解析多层嵌套json数据,递归调用

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规定"
    }
}

}

  • 小葫芦
  • 小葫芦    2017-06-28 09:24:181楼

    首先我们来分析一波,数据结构不管是什么样的,人去解析和机器去解析肯定是通过类型type。

    1. 是里面有type类型,如a、b、c什么的,如果是这样我们肯定可以对应不同的类型设置不同的解析方案。

    2. 没有一个明确的type来标识,用的是名字,name和age肯定是两种不同的东西,那我们就可以通过key来判断了。

    对于json里面有不是命名规则的东西,我们可以用过[]来访问

    +0添加回复

  • 回复