ホームページ > ウェブフロントエンド > jsチュートリアル > シリアル化せずに HTML5 FormData を JSON に変換するにはどうすればよいですか?

シリアル化せずに HTML5 FormData を JSON に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-26 14:26:02
オリジナル
346 人が閲覧しました

How to Convert HTML5 FormData to JSON Without Serialization?

シリアル化を行わずに HTML5 FormData を JSON に変換する

HTML5 フォームを操作する場合、フォームのデータを JSON に変換する必要が生じる場合があります。一般的なアプローチの 1 つは、FormData オブジェクトをシリアル化することです。ただし、これはすべての場合に望ましいとは限りません。シリアル化せずに FormData エントリを JSON に変換する方法は次のとおりです。

ステップ 1: FormData オブジェクトを反復処理する

forEach() メソッドを使用して、FormData オブジェクトのオブジェクトを反復処理します。エントリー。各エントリにはキー (フィールド名) と値 (入力値) が含まれています。

ステップ 2: プレーン オブジェクトを作成する

変換されたデータを保存する空のオブジェクトを初期化します。 JSON データ。

ステップ 3: エントリをキーと値のペアに変換する

forEach() コールバック内で、キーに基づいてオブジェクトに値を割り当てます。例:

<code class="javascript">formData.forEach(function(value, key) {
    object[key] = value;
});</code>
ログイン後にコピー

ステップ 4: オブジェクトを JSON に変換する

最後に、JSON.stringify() メソッドを使用してオブジェクトを JSON 文字列に変換します。

<code class="javascript">var json = JSON.stringify(object);</code>
ログイン後にコピー

ES6 アロー関数の使用

ES6 アロー関数を使用して forEach() ループを簡略化できます。

<code class="javascript">formData.forEach((value, key) => object[key] = value);</code>
ログイン後にコピー

複数の値のサポート

フォームに複数の値を持つフィールド (複数選択リストなど) が含まれている場合、それらをサポートするように上記のコードを変更できます。

<code class="javascript">formData.forEach((value, key) => {
    if (!Array.isArray(object[key])) {
        object[key] = [object[key]];
    }
    object[key].push(value);
});</code>
ログイン後にコピー

FormData の直接送信

XMLHttpRequest 経由でフォーム データを送信することが目的の場合は、FormData オブジェクトを JSON に変換せずに直接送信することを検討できます。このアプローチは Fetch API でもサポートされています。

複雑なオブジェクトの処理

複雑なオブジェクトを処理する場合、JSON.stringify() メソッドには制限が発生する可能性があることに注意してください。このような場合は、オブジェクト内で toJSON() メソッドを定義してカスタムのシリアル化ロジックを指定することを検討してください。

以上がシリアル化せずに HTML5 FormData を JSON に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート