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的更多相关文章

  1. js 根本没有“JSON对象”这回事! JSON对象——转

    前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢. ...

  2. json对象转字符串与json字符串转对象

    1.概述: 我们在编程时进场会遇到json对象转字符串,或者字符串转对象的情况. 2.解决办法: json.parse()方法是将json字符串转成json对象. json.stringfy()方法是 ...

  3. js中 给json对象添加属性和json数组添加元素

    js中 给json对象添加新的属性 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var obj={ &quo ...

  4. 将JSON对象转化为数组对象

    package web.helper; import java.util.ArrayList; import net.sf.json.JSONArray; import web.model.Abstr ...

  5. json对象的操作,json工具

    项目中经常用到json,现在把写了几个js函数,用来获取json对象或者json字符串的长度,以及获取其的key值,value值,并且返回. 这样以后可以直接拿来用,可以省去不少麻烦,也方便以后查看. ...

  6. js中多层复杂并且动态键值JSON的获取方法

    开发中遇到了用js解析重新组装json数据的要求,关键点在于JSON中的串的键是动态的,多方查找解决了在此做个记录.同时我也深感js中循环的无赖,如果用i作为键会得到索引,用key作为循环变量竟然可以 ...

  7. js数值使用及数组转json,转化后的json传入后台解析

    var storeArray=new Array(); $("input[name='storeid']").each(function(i){ var curStoreObj = ...

  8. sqlachemy查询对象转化成字典/json使用

    https://www.cnblogs.com/sanduzxcvbnm/p/10220718.html

  9. json中把非json格式的字符串转换成json对象再转换成json字符串

    JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串

  10. 根据json对象的值替换json数组里的值

    功能: var fruitArry=[{name:'durian'},{name:'peach'},{name:'banana'},{name:'pitaya'},{name:'apple'},{na ...

随机推荐

  1. k8s心得

    k8s的 Service 记录了发布后服务的基本信息,如 ip,端口

  2. Nginx负载均衡4种方案

    1.轮询 轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器. 配置的例子如下:http{     upstream sampleapp { ...

  3. 设置cudnn日志

    主要分为两个步骤,分别设置两个环境变量. 第一步,设置日志级别. # 三种级别,设置环境变量为1为开启,设置为0关闭. # CUDNN_LOGINFO_DBG # CUDNN_LOGWARN_DBG ...

  4. Access to the path 'C:\Windows\TEMP\XXX.tmp' is denied.

    System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ASPNETCORE_935a19f1-814f-4b3 ...

  5. php 图片加水印插件

    问题:背景透明的水印图片,在加到原图上后不显示,待解决 <?php /** * 图片加水印(适用于png/jpg/gif格式) * * @author flynetcn * * @param $ ...

  6. webpackHotMiddleware改造成koa支持的中间件

    const stream = require('stream'); const webpackHot = require('webpack-hot-middleware'); const PassTh ...

  7. unity学习笔记03-渲染管线

    图形数据在GPU上经过运算处理,最后显示在显示器上的过程 游戏→图形API→cpu→(DRAW CALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存 减少DRAW CALL  增加性能 O ...

  8. CSP-J入门组

    setw(2) cout<<setw(2) //设置后面显示字符的宽度为2 cout<<fixed<<setprecision(6)<<变量名;//设置 ...

  9. HTTP请求报文(请求行,请求头,请求体)

    HTTP协议 1.简介 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  10. 处理code中代码格式化与eslint冲突

    在结尾去掉分号 让字符串格式化之后用单引号表示 去掉格式化后自动给末尾加的逗号 在根目录下新建一个文件prettierrc 输入如下 函数名与()之间取消空格 打开eslintrc.js 输入如下代码 ...