"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como faço para converter FormData HTML5 em JSON?

Como faço para converter FormData HTML5 em JSON?

Publicado em 2024-11-08
Navegar:315

How do I Convert HTML5 FormData to JSON?

Converter FormData HTML5 em JSON

Converter as entradas de um objeto FormData HTML5 em JSON é uma tarefa comum no desenvolvimento web. Embora existam várias abordagens para conseguir isso, o método mais direto e eficiente é usar a função forEach() diretamente no objeto FormData.

var object = {};
formData.forEach(function(value, key){
    object[key] = value;
});
var json = JSON.stringify(object);

Essa abordagem percorre cada par de valores-chave no objeto FormData e os adiciona a um novo objeto JavaScript. O método JSON.stringify() é então usado para converter o objeto em uma string JSON.

Atualização: ES6 Arrow Functions

Para aqueles que preferem a sintaxe ES6, o a mesma solução pode ser escrita usando funções de seta:

var object = {};
formData.forEach((value, key) => object[key] = value);
var json = JSON.stringify(object);

Atualização 2: suporte para elementos de formulário com vários valores

Para oferecer suporte a elementos de formulário com vários valores, como seleção múltipla listas, o seguinte código pode ser usado:

var object = {};
formData.forEach((value, key) => {
    if(!Reflect.has(object, key)){
        object[key] = value;
        return;
    }
    if(!Array.isArray(object[key])){
        object[key] = [object[key]];    
    }
    object[key].push(value);
});
var json = JSON.stringify(object);

Atualização 3: envio direto via XMLHttpRequest e Fetch API

O envio de FormData diretamente para um servidor sem conversão é possível usando o Objeto XMLHttpRequest ou API de busca:

var request = new XMLHttpRequest();
request.open('POST', 'http://example.com/submitform.php');
request.send(formData);
fetch('http://example.com/submitform.php', {
  method: 'POST',
  body: formData
}).then((response) => { 
  // do something with response here... 
});

Atualização 4: serialização JSON de objetos complexos

A lógica de serialização personalizada pode ser definida para objetos complexos por meio do método toJSON().

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3