POST-запрос с вложенной картой пустым - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть приложение Springboot с интерфейсом React / Typescript. В настоящее время у меня есть следующие два интерфейса и объект, созданный из них.

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),
});

Моя проблема в том, что при каждой отправке запроса объект выглядит следующим образом: карта заказа всегда пуста (см.… Spe c: {order: {}})

1 Ответ

0 голосов
/ 16 апреля 2020

Когда вы преобразуете 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}) ))

Более подробные инструкции по преобразованию карты см. ниже:

Преобразование карты в JSON объект в Javascript

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...