Como mapear da forma correta objetos e listas no FormData?

2 respostas
javascript
B

Boa tarde, com esse trecho de codigo consigo adicionar valores no FormData:

const formData = new FormData();
Object.keys(entity).forEach((label) => formData.append(label, entity[label]));

Porém dessa forma ele não reconhece os objetos/listas que tem dentro da entity. A forma que encontrei de resolver o problema é fazer JSON.stringify(entity[label], transformando assim listas e objetos em String, então no back eu uso o método de ObjectMapper para transformar em um Map desses valores. Teria uma forma melhor de adicionar esses valores no FormData?

2 Respostas

L

Sua forma de pensar está correta, para enviar um Array pelo FormData você utiliza o stringify no front-end para transforma-lo em String e no back-end pode ser utilizado um parse para voltar para Array.

Front-end

const produtos = [{id: 1, desc: 'Produto 1'}, {id: 2, desc: 'Produto 2'}]
      const data = new FormData()

      data.append('produtos', JSON.stringify(produtos))

Back-end

const produtos = JSON.parse(request.produtos)
B

Entendi, então não tem uma forma melhor de enviar esses dados já como listas e objetos, obrigado.

Criado 21 de julho de 2022
Ultima resposta 22 de jul. de 2022
Respostas 2
Participantes 2