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

Converting a typescript class object with dictionary to a JSON array

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

应用提供的解决方案后

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"
        }
    ]
}

谁能帮忙,谢谢。

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

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

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

console.log(output);

您可以将此代码改编为 select 您对象的所需部分,并根据需要设置它们的格式。您可以在文档中看到其他 Object 函数。