将带有字典的打字稿类对象转换为 JSON 数组

时间:2021-01-07 13:59:24

标签: arrays json typescript stringify

经过一番挖掘,我决定我的后端需要使用重复的键,因此我的前端不能再将字典作为 JSON 字符串发送。 查看我的previous question

应用提供的解决方案后

let mediatagRequest = new MediaTagRequest(tags);
const headers = { 'content-type': 'application/json' }

let jsonObject = {};
for (let entry of mediatagRequest.tags.entries())
{
  jsonObject[entry[0]] = entry[1];
}

const body = JSON.stringify({
  tags: jsonObject
});

我当前的输出(这是我当时想要的)

{
"tags": {
    "city": "Karachi"
}

但是我的需求发生了变化,经过一番挣扎后,我无法得到我想要的输出

{
    "tags": [
        {
            "key": "city",
            "value": "Karachi"
        },
        {
            "key": "city",
            "value": "Mumbai"
        }
    ]
}

有人可以帮忙吗,谢谢。

1 个答案:

答案 0 :(得分:1)

要获得所需的输出,您可以使用 Object.entries() 函数分别获取键值对。此代码段会将一个对象转换为具有键值对的对象列表:

test_object = { 
  karachi: "dubai",
  mumbao: "moscow",
};

output = Object.entries(test_object).map(([key, value]) => ({ key, value}));

console.log(output);

您可以修改此代码以选择对象的所需部分并根据需要对其进行格式化。您可以在文档中看到其他 Object 函数。