javascript - POST zahtjev s ugniježđenim praznim Map


Imam Spring Boot aplikaciju s React/Typescript frontendom. Trenutno imam sljedeća dva sučelja i objekt kreiran iz njih.

export interface Order {
    customer_id: number;
    date: Date;
    total: number;
    spec: OrderSpec;
}

export interface OrderSpec {
    order: Map<number, number>
}

Kreiram objekt tipa Order i pokušavam napraviti POST zahtjev koristeći ga na sljedeći način:

return fetch(url, {
    method: method,
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(item),
});

Moj problem je što svaki put kada se pošalje zahtjev, objekt izgleda ovako: mapa narudžbi je uvijek prazna (vidi... spec:{order:{}})

Odgovor #1

Kada pretvorite Map u niz znakova, dobivate prazan JSON objekt.

Ili pretvorite svoj Map u object i zatim ga pošaljete svojoj API ili jednostavno promijenite svoju strukturu podataka/tipove da pohranjuju objekt.

možete koristiti donji kod za pretvaranje vaše mape u JS objekt

 let myMap = new Map();
 myMap.set(1, 'one');
 myMap.set(2, 'two');

 Object.assign({}, ...Array.from(myMap.entries()).map(([k, v]) =>({[k]: v}) ))

Pogledajte dolje za više smjernica o konverziji karte:

Pretvori Mapu u JSON objekt u Javascripta

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