json数据扁平化处理
json数据扁平化处理(适用于接口传参复杂数据加密处理)
/*
* name:json数组拉平处理
* data:json对象或者数组
* k:前面开始可传空
*/
function expandJsonTool(data, k) {
var jmap = {}
var expandJson = function(jstr, mapIndex) {
if (jstr instanceof Array) {
for (var i in jstr) {
expandJson(jstr[i], `${mapIndex}[${i}]`);
}
} else if (jstr instanceof Object) {
for (var i in jstr) {
// 如果mapIndex为false,null,''时,则不加初始索引
if (!mapIndex) {
var key = i;
} else {
var key = `${mapIndex}.${i}`;
}
// Array 是 Object 的子集,先判断是否为 Array,如果是,则不走Object的判断
if (jstr[i] instanceof Array) {
for (var j in jstr[i]) {
expandJson(jstr[i][j], `${key}[${j}]`);
}
} else if ((jstr[i] instanceof Object)) {
expandJson(jstr[i], key);
} else {
jmap[key] = jstr[i]
}
}
}
}
expandJson(data, k);
return jmap
}
原始数据
{
"bandEndPrize": [{
"flag": 0,
"gameId": 0,
"limit": 0,
"orderBy": 0,
"prizeIcon": "",
"prizeName": "",
"prizeTime": "",
"prizeType": "",
"unit": ""
}],
"bandIngPrize": [{
"flag": 0,
"gameId": 0,
"limit": 0,
"orderBy": 0,
"prizeIcon": "",
"prizeName": "",
"prizeTime": "",
"prizeType": "",
"unit": ""
}],
"bandTaskRequest": [{
"addGameWeekTaskReqs": [{
"orderBy": 0,
"score": 0,
"taskCode": "",
"taskValue": 0
},
{
"orderBy": 0,
"score": 0,
"taskCode": "",
"taskValue": 0
}
],
"gameId": 0,
"gameWeekEnd": "",
"gameWeekId": 0,
"gameWeekStart": "",
"id": 0,
"seaTaskType": 0,
"taskType": 0
}]
};
处理后的数据
{
"bandEndPrize[0].flag": 0,
"bandEndPrize[0].gameId": 0,
"bandEndPrize[0].limit": 0,
"bandEndPrize[0].orderBy": 0,
"bandEndPrize[0].prizeIcon": "",
"bandEndPrize[0].prizeName": "",
"bandEndPrize[0].prizeTime": "",
"bandEndPrize[0].prizeType": "",
"bandEndPrize[0].unit": "",
"bandIngPrize[0].flag": 0,
"bandIngPrize[0].gameId": 0,
"bandIngPrize[0].limit": 0,
"bandIngPrize[0].orderBy": 0,
"bandIngPrize[0].prizeIcon": "",
"bandIngPrize[0].prizeName": "",
"bandIngPrize[0].prizeTime": "",
"bandIngPrize[0].prizeType": "",
"bandIngPrize[0].unit": "",
"bandTaskRequest[0].addGameWeekTaskReqs[0].orderBy": 0,
"bandTaskRequest[0].addGameWeekTaskReqs[0].score": 0,
"bandTaskRequest[0].addGameWeekTaskReqs[0].taskCode": "",
"bandTaskRequest[0].addGameWeekTaskReqs[0].taskValue": 0,
"bandTaskRequest[0].addGameWeekTaskReqs[1].orderBy": 0,
"bandTaskRequest[0].addGameWeekTaskReqs[1].score": 0,
"bandTaskRequest[0].addGameWeekTaskReqs[1].taskCode": "",
"bandTaskRequest[0].addGameWeekTaskReqs[1].taskValue": 0,
"bandTaskRequest[0].gameId": 0,
"bandTaskRequest[0].gameWeekEnd": "",
"bandTaskRequest[0].gameWeekId": 0,
"bandTaskRequest[0].gameWeekStart": "",
"bandTaskRequest[0].id": 0,
"bandTaskRequest[0].seaTaskType": 0,
"bandTaskRequest[0].taskType": 0
}
json数据扁平化处理的更多相关文章
- andlua,andlua发送http请求,并解析json数据
andlua发送http请求,并解析json实例 import'cjson'import 'http'--导入cjson库url = 'https://www.baidu,com'--设置urlHtt ...
- js树形数据结构的扁平化
前面我们封装了一维数组(具备树形结构相关属性)处理成树形结构的方法:https://www.cnblogs.com/coder--wang/p/15013664.html 接下来我们来一波反向操作,封 ...
- [转]easyui tree 模仿ztree 使用扁平化加载json
原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.h ...
- MongoDB 聚合嵌入的数组(扁平化数据+管道)
MongoDB学习教程 先看下要操作的主要数据结构: { "_id" : "000015e0-3e9c-40b3-bd0d-6e7949f455c0", &qu ...
- java 扁平化输出json所有节点key/value
本章主要介绍用java实现扁平化输出json所有节点key/value(包含所有内层子节点) 1.json结构 目的输出bill_list下的datalist里的子节点key/value 2.实现代码 ...
- js数据结构处理--------扁平化数组处理为树结构数据
将扁平化的数组处理为树结构数据,我们可以利用对象来处理,对象的复制是浅拷贝,指向相同的内存地址: var arr = [ { id: 0, pid: -1, name: 'sadas' }, { id ...
- JMeter 压力測试使用函数和 CSV 文件參数化 json 数据
在 http Load Testing 中.json 数据的提交是个让人头疼的问题.本文具体介绍怎样进行 JMeter 的 json 測试提交,以及怎样将其參数化. St ...
- tensorflow tensor Flatten 张量扁平化,多通道转单通道数据
slim.flatten(inputs,outputs_collections=None,scope=None) (注:import tensorflow.contrib.slim as slim) ...
- AppBox升级进行时 - 扁平化的权限设计
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox v2.0中的权限实现 AppBox v2.0中权限管理中涉及三个 ...
随机推荐
- SVN 目录 定义
1.项目名称定义: 项目自然序号_项目名称_负责人名称 例如:23_测试项目_An 2.项目目录定义: 01_Source 注:01_Source 中包含 代码 和 DB 设计 02_Document ...
- docker概述与安装及运行容器
传统虚拟化 传统虚拟化步骤 1.安装虚拟化软件以及虚拟化的管理软件 2.创建虚拟机 3.给虚拟机安装os 4.在虚拟机内部不是应用(http.db之类的应用) 传统虚拟化的特点 1.VM与VM之间是完 ...
- 用C实现基本的输出参数个数与参数内容
开发环境为 centos7 和 gcc4.8.5,代码如下: /** * 用C实现基本的输出参数个数与参数内容 */ #include <stdio.h> int main(int arg ...
- picker多级选择器的使用————小程序
picker多级选择器的使用----小程序 picker是选择器来着,既然选择了,就希望可以获取选择的数据. index.html <view>picker获取数据</view> ...
- DOM查询的其他方法
document.body 保存的是body的引用 documen.documentElement 保存的是html根标签 document.all 代表页面中所有的元素 getElementsByC ...
- SHELL自动化--接口测试
#!/bin/bash fileNum=`ls /bin/testShell/apiCheck_shell/logs/ | grep $(date "+%Y-%m-%d") | w ...
- tensorflow 版本的mask rcnn 实践
1. https://www.jianshu.com/p/27e4dc070761 (tensorflow object detection API/Mask RCNN)
- linux随笔-05
shell脚本&定时任务 编写Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”. Shell脚本命令的工作方式有两种:交互式和批处理. 交互式(Interactiv ...
- shell input value from console
echo "Please enter some input: " read input_variable echo "You entered: $input_variab ...
- maven3常用命令、java项目搭建、web项目搭建详细图解(转)
转自:http://blog.csdn.net/edward0830ly/article/details/8748986 maven3常用命令.java项目搭建.web项目搭建详细图解 2013-0 ...