Como mapear da forma correta objetos e listas no FormData?

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?

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)
1 curtida

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