我有一个带有 React/Typescript 前端的 springboot 应用程序。我当前有以下两个接口(interface)和一个由此创建的对象。
export interface Order {
customer_id: number;
date: Date;
total: number;
spec: OrderSpec;
}
export interface OrderSpec {
order: Map<number, number>
}
我构造了一个 Order 类型的对象,并尝试使用它创建一个发布请求,如下所示:
return fetch(url, {
method: method,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(item),
});
我的问题是每次发送请求时对象看起来像: the order map is always empty (see... spec:{order:{}})
最佳答案
当您对 Map
进行字符串化时,您会得到一个空的 json 对象。
您可以将 Map
转换为 对象
,然后将其发布到您的 API,或者只是更改数据结构/类型来存储对象。
您可以使用下面的代码将您的 map 转换为js对象
let myMap = new Map();
myMap.set(1, 'one');
myMap.set(2, 'two');
Object.assign({}, ...Array.from(myMap.entries()).map(([k, v]) =>({[k]: v}) ))
有关 map 转换的更多指南,请参阅下文:
关于javascript - 嵌套 Map 为空的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61242322/