简体   繁体   English

如何将单个 json 对象转换为 json 数组?

[英]How can I transform a single json object into json array?

My axios api returns a JSON object in the format as follow.我的 axios api 返回格式如下的 JSON 对象。

{
    "GROUP": "Group",
    "NTH_PRODUCT_AFTER_M": "Nth Product After M",
    "CART_DISCOUNT": "Cart Discount",
    "EACH_NTH": "Each Nth",
    "BUYX_GETY": "Buy X Get Y",
    "PRODUCT_SET": "Product set",
    "PRODUCT_DISCOUNT": "Product Discount",
    "GET_Y_EACH_SPENT_X": "Get y Each Spent X"
}

but I need to tranform each element in the JSON object into a JSON object of a JSON array into this format below.但是我需要将 JSON 对象中的每个元素转换为 JSON 数组的 JSON 对象,转换为下面的这种格式。

[
              { value: "EACH_NTH", label: "Each Nth" },
              { value: "GROUP", label: "Group" },
              { value: "BUYX_GETY", label: "Buy X Get Y" },
              { value: "CART_DISCOUNT", label: "Cart Discount" },
              { value: "NTH_PRODUCT_AFTER_M", label: "Nth Product After M" },
              { value: "PRODUCT_DISCOUNT", label: "Product Discount" },
              { value: "GET_Y_EACH_SPENT_X", label: "Get Y for Each Spend of X" },
              { value: "PRODUCT_SET", label: "Discount on a Product Set" },
            ];

Use Object.entries() to create an array of key / value pairs then map that to the structure you want使用Object.entries()创建一个键/值对数组,然后将其映射到您想要的结构

 const data = {"GROUP":"Group","NTH_PRODUCT_AFTER_M":"Nth Product After M","CART_DISCOUNT":"Cart Discount","EACH_NTH":"Each Nth","BUYX_GETY":"Buy X Get Y","PRODUCT_SET":"Product set","PRODUCT_DISCOUNT":"Product Discount","GET_Y_EACH_SPENT_X":"Get y Each Spent X"}; const arr = Object.entries(data).map(([value, label]) => ({ value, label })); console.log(arr);
 .as-console-wrapper { max-height: 100% !important; }

The array will be sorted in the order of the keys in the original object.该数组将按照原始对象中键的顺序进行排序。

 obj = { "GROUP": "Group", "NTH_PRODUCT_AFTER_M": "Nth Product After M", "CART_DISCOUNT": "Cart Discount", "EACH_NTH": "Each Nth", "BUYX_GETY": "Buy X Get Y", "PRODUCT_SET": "Product set", "PRODUCT_DISCOUNT": "Product Discount", "GET_Y_EACH_SPENT_X": "Get y Each Spent X" } arr=[]; for (k in obj) {arr.push({value:k, label:obj[k]})} console.log(arr);

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

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