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 令牌

使用 POST 请求 iOS Swift 3 发送嵌套 JSON

koa-router post请求接收的参数为空

Post请求方式长度參数过长导致參数为空

restkit 映射嵌套数组为空(带有 json 响应的嵌套 restkit 请求)