Как преобразовать объект HTML5 FormData в JSON? Без Jquery и обработки вложенных свойств в FormData как объект.Как преобразовать объект FormData (объект HTML5) в JSON
ответ
Вы также можете использовать forEach
на FormData
объекта непосредственно:
var object = {};
formData.forEach(function(value, key){
object[key] = value;
});
var json = JSON.stringify(object);
Вы можете достичь этого, используя объект FormData(). Этот объект FormData будет заполнен текущими ключами/значениями формы, используя свойство имени каждого элемента для ключей и их переданное значение для значений. Он также будет кодировать содержимое входного файла.
Пример:
var myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(event)
{
event.preventDefault();
var formData = new FormData(myForm),
result = {};
for (var entry of formData.entries())
{
result[entry[0]] = entry[1];
}
result = JSON.stringify(result)
console.log(result);
});
Простота в использовании функции
Я создал A Function For This
function FormDataToJSON(FormElement){
var formData = new FormData(FormElement);
var ConvertedJSON= {};
for (const [key, value] of formData.entries())
{
ConvertedJSON[key] = value;
}
return ConvertedJSON
}
Пример
var ReceivedJSON = FormDataToJSON(document.getElementById('FormId');)
В этом коде я создал пустую переменную JSON с использованием цикла for
. Я использовал key
s from formData Объект для ключей JSON в каждом Itration.
Вы найдете код в моем JS библиотеки на GitHub Do Предлагайте Me If It Needs Improvement я поместил здесь https://github.com/alijamal14/Utilities/blob/master/Utilities.js
Пожалуйста, объясните свой код. – zuluk
@zuluk [Разъяснено] (https://stackoverflow.com/revisions/44151416/2) ** Спасибо ** –
метод FormData .entries
код и for of
выражение не поддерживается в IE11 и Safari.
Вот версия для проще поддерживать Safari, Chrome, Firefox и пограничный
function formDataToJSON(formElement) {
var formData = new FormData(formElement),
convertedJSON = {};
formData.forEach(function(value, key) {
convertedJSON[key] = value;
});
return convertedJSON;
}
Внимание: этот ответ не работает в IE11.
FormData не имеет метода forEach
в IE11.
Я все еще ищу окончательное решение для поддержки всех основных браузеров.
это замечательно! мы должны поддерживать старые браузеры, и использование итератора не очень интуитивно. –
Если вы используете lodash это может быть сделано сжато с fromPairs
import {fromPairs} from 'lodash';
const object = fromPairs(Array.from(formData.entries()));
Вот способ сделать это в более функциональный стиль, без использования библиотеки.
Array.from(formData.entries()).reduce((memo, pair) => ({
...memo,
[pair[0]]: pair[1],
}), {});
Пример:
document.getElementById('foobar').addEventListener('submit', (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const data = Array.from(formData.entries()).reduce((memo, pair) => ({
...memo,
[pair[0]]: pair[1],
}), {});
document.getElementById('output').innerHTML = JSON.stringify(data);
});
<form id='foobar'>
<input name='baz' />
<input type='submit' />
</form>
<pre id='output'>Input some value and submit</pre>
- 1. Как отправить объект FormData?
- 2. как преобразовать объект JSON в объект класса
- 3. Как преобразовать объект JSON в объект Angular?
- 4. Как преобразовать объект JSON в объект JavaScript
- 5. как преобразовать в объект JSON
- 6. Как преобразовать JSON в объект?
- 7. Ajax & php: объект FormData
- 8. Как преобразовать изображение холста html5 в объект json?
- 9. Как преобразовать объект в JSON, когда объект имеет внутренний объект
- 10. Преобразовать Объект класса StdClass в JSON объект
- 11. Как преобразовать один объект json в объект массива json?
- 12. Как преобразовать массив JSON в объект JSON
- 13. Как преобразовать текст JSON в объект JSON?
- 14. как преобразовать json-объект в json-массив
- 15. Преобразовать Json объект объекта
- 16. Как конвертировать итератор (FormData) в объект
- 17. Преобразовать строку в JSON объект
- 18. преобразовать объект json в массив
- 19. Преобразовать строку в объект JSON
- 20. Преобразовать Json объект в список
- 21. Как клонировать/расширять объект FormData?
- 22. Как преобразовать объект в объект []
- 23. Объект FormData всегда пуст
- 24. Невозможно преобразовать json в объект
- 25. Преобразовать объект Entity в JSON
- 26. Cant создать FormData объект
- 27. как преобразовать объект литерала JavaScript в объект Json в PHP
- 28. Как преобразовать объект в json в Nim
- 29. Преобразование formdata NameValueCollection в объект
- 30. преобразовать объект в объект []
Что вы пытаетесь сделать? Помогает ли 'JSON.stringify()'? Может быть, вы попытаетесь исправить то, что может быть сделано другим способом? – Justinas
Возможный дубликат [Преобразование JS-объекта в строку JSON] (http: // stackoverflow.com/questions/4162749/convert-js-object-to-json-string) – Liam
Не дублируется, так как я не хочу преобразовывать объект javascript в json и не хочу использовать Jquery.serialize() –