簡體   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