繁体   English   中英

如何在javascript /打字稿中重新映射json键值映射?

[英]How to remap json key-value mapping in javascript/ typescript?

特定

{"a": {"name": "king", "firstname": "Thomas"},"b": {"age": "21"}}

我正在尝试找出一种简单的方法将其转换为

{"name": "king","firstname": "Thomas","age": "21"}

在Javascript / Angular中。 也许有人有一个好主意,我将非常感激。 我正在尝试更改响应以使其适合API请求。

编辑:我改变了我忘了提的问题,我在第二层中有多个键值对。

我想要实现的是摆脱json文件中的第一级密钥,因为我发送给它的API没有这些密钥,它只使用第二级中的密钥

您可以尝试以下方法:

const original = {"a": {"name": "thomas"},"b": {"age": "21"}}
const result = Object.values(original)

或者,如果您需要更多的灵活性:

const original = {"a": {"name": "thomas"},"b": {"age": "21"}}
const result = []
Object.keys(original).forEach( key => result.push(original[key]) )

温暖的问候

这应该为您工作。 我向对象添加了第三个属性,以显示如果您有两个具有相同属性的对象会发生什么(稍后迭代的对象将覆盖之前的对象,但是由于您不能依赖对象中的属性顺序,因此可能会产生意外的结果)。 如果您的所有属性都没有重复,则无后顾之忧。

 var data = {"a": {"name": "thomas"},"b": {"age": "21"},"c": {"age": "22"}}; // "c" will overwrite "b" var converted = Object.keys(data).reduce((o, e) => Object.assign(o, data[e]), {}); // Object.keys(data) gives the array [“a”, “b”, “c”] // Reduce that array to an object by assigning, to a new empty object, // the properties of the objects found in each property of data console.log(converted); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM