【问题标题】:POST request with nested Map empty嵌套 Map 为空的 POST 请求
【发布时间】:2020-07-29 05:24:10
【问题描述】:

我有一个带有 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:{}})

【问题讨论】:

    标签: javascript json reactjs typescript fetch


    【解决方案1】:

    当你对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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-08
      • 2021-11-16
      • 2020-07-16
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      相关资源
      最近更新 更多