簡體   English   中英

重新放置json數組對象元素

[英]Reposition json array object elements

嗨,我想將下面的json數據轉換成不同的格式,這是對我的json數據的重新排列。 我也理解我們通過鍵訪問數據,但是我的要求如下所示,我對此無能為力。 在必填數據的下方,您可以看到月份始終排在第一位。

給定數據:

[ { "Operating Company" : "7", "month" : "March", "Insolvency" : "2", "SPV / Asset Backed" : "4" }, { "Operating Company" : "3", "month" : "July", "Insolvency" : "43", "TBD" : "1" }, { "Operating Company" : "6", "month" : "August", "SPV / Asset Backed" : "27" }, { "Operating Company" : "54", "month" : "September", "Insolvency" : "114", "Operational Company" : "1", "SPV / Asset Backed" : "15" } ]

所需數據:-

[ { "month" : "March", "Operating Company" : "7", "Insolvency" : "2", "SPV / Asset Backed" : "4" }, {"month" : "July",  "Operating Company" : "3", "Insolvency" : "43", "TBD" : "1" }, { "month" : "August", "Operating Company" : "6", "SPV / Asset Backed" : "27" }, {"month" : "September",  "Operating Company" : "54", "Insolvency" : "114", "Operational Company" : "1", "SPV / Asset Backed" : "15" } ]

JSON規范不保證JSON處理器如何處理對象中鍵/值對的順序:

6個物件

JSON語法沒有為名稱/值對的排序賦予任何意義。 這些都是JSON處理程序可以定義的語義注意事項,也可以在定義JSON用於數據交換的特定用法的規范中定義。

資料來源: ECMA-404,第二版/ 2017年12月,6個對象

ECMAScript 2015規范不保證對象中鍵的順序:

9.1普通對象的內部方法和內部插槽9.1.11 [[枚舉]]()

[...]枚舉屬性的機制和順序未指定[...]

資料來源: ECMA-262,第6版/ 2015年6月

因此,您可以更改JSON對象中鍵/值對的順序,但是如果將JSON.parse()更改為JavaScript對象,則不再保證該順序。

但是,如果在JavaScript中解析時需要保持JSON Object的鍵值對的順序,則需要編寫自己的將JSON Object解析為JavaScript Map的解析。 Map保證鍵的順序。

由於您在評論中提到D3.js需要此功能,因此我很確定您的實際問題還有其他問題。 隨時為您的D3.js問題打開另一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM