js 将多层json对象 转化为一层json
const parse = data => {
const uid = `uid_${Date.now()}`;
const process = (input, prefix = '', json = {}) => {
Object.keys(input).forEach(key => {
const val = input[key];
if (!json.hasOwnProperty(`${prefix}${key}.`)) {
json[`${prefix}${key}.`] = uid;
}
if ('object' === typeof val && !Array.isArray(val) && !!val) {
process(val, `${prefix}${key}.`, json);
}
else {
json[`${prefix}${key}.`] = val;
}
});
return json;
};
const json = process(data);
const result = {};
Object.keys(json).forEach(key => {
if (json[key] !== uid) {
result[key.slice(0, -1)] = json[key];
}
});
return result;
};
js 将多层json对象 转化为一层json的更多相关文章
- js 根本没有“JSON对象”这回事! JSON对象——转
前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢. ...
- json对象转字符串与json字符串转对象
1.概述: 我们在编程时进场会遇到json对象转字符串,或者字符串转对象的情况. 2.解决办法: json.parse()方法是将json字符串转成json对象. json.stringfy()方法是 ...
- js中 给json对象添加属性和json数组添加元素
js中 给json对象添加新的属性 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var obj={ &quo ...
- 将JSON对象转化为数组对象
package web.helper; import java.util.ArrayList; import net.sf.json.JSONArray; import web.model.Abstr ...
- json对象的操作,json工具
项目中经常用到json,现在把写了几个js函数,用来获取json对象或者json字符串的长度,以及获取其的key值,value值,并且返回. 这样以后可以直接拿来用,可以省去不少麻烦,也方便以后查看. ...
- js中多层复杂并且动态键值JSON的获取方法
开发中遇到了用js解析重新组装json数据的要求,关键点在于JSON中的串的键是动态的,多方查找解决了在此做个记录.同时我也深感js中循环的无赖,如果用i作为键会得到索引,用key作为循环变量竟然可以 ...
- js数值使用及数组转json,转化后的json传入后台解析
var storeArray=new Array(); $("input[name='storeid']").each(function(i){ var curStoreObj = ...
- sqlachemy查询对象转化成字典/json使用
https://www.cnblogs.com/sanduzxcvbnm/p/10220718.html
- json中把非json格式的字符串转换成json对象再转换成json字符串
JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串
- 根据json对象的值替换json数组里的值
功能: var fruitArry=[{name:'durian'},{name:'peach'},{name:'banana'},{name:'pitaya'},{name:'apple'},{na ...
随机推荐
- Unity旧版图集和新版图集
1.关于旧版图集 ===>结论:设置PackingTag就可以了. ===>分析:设置好PackingTag,那么在进行打包的时候,同一个标签的会被打到1个图集里面,图集最大为2048x2 ...
- sql常用记录
sqlserver 在已有值的列上自动增加 获取列最大的值 declare @Field int select @Field = ISNULL(Max(Field),0) from SupCsBill ...
- selenium爬取PDF预览文件
python selenium 爬取某网站的pdf预览文件,下载图片转换pdf 参考链接:https://blog.csdn.net/weixin_44740756/article/details/1 ...
- windows sshd powershell 配置
安装sshd打开"设置",选择"应用">"应用和功能",然后选择"可选功能" .扫描列表,查看是否已安装 Open ...
- VS Code 快速下载
最近在官网下载Visual Studio Code时,下载速度特别慢,经过搜索后发现,将下载地址前部分更换为国内地址后,下载速度飞快. 具体步骤如下: VSCodeSetup-x64-1.72.0 官 ...
- sql 时间
sql拿两天之内的时间 SELECT * FROM room_message WHERE send_date BETWEEN UNIX_TIMESTAMP( now())-172800 AND now ...
- Typora的初使用
HelloTypora 二级标题 三级标题 HelloWorld! HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld 引用 分割线 图片 # ...
- @EnableAspectJAutoProxy 注解的作用 —— 转载
@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)解决同类方法调用时异步和事务不生效:我们在开启springboo ...
- String.prototype.replace--替换字符串
str.replace(regexp|substr, newSubStr|function) API本身不改变原本的字符串,只是返回新的字符串例子:用函数作为第二个参数function rep ...
- 方法综合练习:out、params、ref
using System; namespace ConsoleApp1 { class Program { /// <summary> /// 求两个参数之间的最大值 /// </s ...