POST请求,嵌套Map为空
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POST请求,嵌套Map为空相关的知识,希望对你有一定的参考价值。
我有一个带有React / Typescript前端的springboot应用程序。我目前有以下两个接口和一个由此创建的对象。
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
转换为object
,然后将其发布到api或只是更改数据结构/类型以存储对象。
您可以使用下面的代码将地图转换为js对象
let myMap = new Map();
myMap.set(1, 'one');
myMap.set(2, 'two');
Object.assign({}, ...Array.from(myMap.entries()).map(([k, v]) =>({[k]: v}) ))
请参阅以下有关地图转换的更多指导:
Convert Map to JSON object in Javascript
https://gist.github.com/lukehorvat/133e2293ba6ae96a35ba
以上是关于POST请求,嵌套Map为空的主要内容,如果未能解决你的问题,请参考以下文章
libcurl发起post请求时间延迟问题。except为空即可
请求正文为空,POST 节点 js ajax 调用 json Web 令牌