javascript - 嵌套 Map 为空的 POST 请求

标签 javascript json reactjs typescript fetch

我有一个带有 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 转换的更多指南,请参阅下文:

Convert Map to JSON object in Javascript

https://gist.github.com/lukehorvat/133e2293ba6ae96a35ba

关于javascript - 嵌套 Map 为空的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61242322/

相关文章:

javascript - Yii2-dynamicforms 和 javascript

javascript - 在动画更新时从父组件更新子组件 DOM

reactjs - React-sortable-hoc ReactJS库排序问题

javascript - 将 HTML 解析为异步调用的响应

javascript - Angular - ng-hide 和 ng-show 的事件

javascript - Jquery datepicker beforeShowDay 仍然可点击,即使所有日期都应该已经不可选择

javascript - 如何将 div 宽度从 iframe 发送到父页面

java - 如何在jsp表中显示Json字符串

ios - 如何从 Swift 3.1 中的 API 创建解析数据(API 以括号开头和结尾)

Javascript - 转换名称 :ItemName/Value:ItemValue Objects to Regular ItemName:ItemValue JSON