您的位置:首页技术文章
文章详情页

javascript - js解析多层嵌套json数据,递归调用

【字号: 日期:2023-05-09 18:16:16浏览:54作者:猪猪

问题描述

需要处理接口返回的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规定' }}

}

问题解答

回答1:

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

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

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

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

javascript - js解析多层嵌套json数据,递归调用

标签: JavaScript