1. ホーム
  2. javascript

[解決済み] jqueryで入力値ごとに動的にJSONを作成する。

2022-12-27 01:42:01

質問

PHPでJSON形式のデータを読み込みたいのですが、JSON形式を動的に作成するためにJavascriptオブジェクトをどのように構築すればよいのかがよくわかりません。

私のシナリオは次のとおりです。

<input title="QA" type="text" class="email">
<input title="PROD" type="text" class="email">
<input title="DEV" type="text" class="email">

今までのJavascriptのコードでは、各入力からデータを取得していましたが、これからどのように処理すればよいのかが分かりません。

var taskArray = {};

$("input[class=email]").each(function() {
  var id = $(this).attr("title");
  var email = $(this).val();

  //how to create JSON?

});

できれば以下のような出力にしたいです。

[{title: QA, email: '[email protected]'}, {title: PROD, email: '[email protected]'},{title: DEV, email: '[email protected]'}]

入力フィールドの値でメールを取得するところ。

どのように解決するのですか?

このように

function createJSON() {
    jsonObj = [];
    $("input[class=email]").each(function() {

        var id = $(this).attr("title");
        var email = $(this).val();

        item = {}
        item ["title"] = id;
        item ["email"] = email;

        jsonObj.push(item);
    });

    console.log(jsonObj);
}

説明

あなたが探しているのは an array of objects . そこで、空白の配列を作成します。オブジェクトを作成し、それぞれの input に対して、'title' と 'email' をキーとするオブジェクトを作成します。そして、それぞれのオブジェクトを配列に追加します。

もし文字列が必要なら、次のようにします。

jsonString = JSON.stringify(jsonObj);

サンプル出力

[{"title":"QA","email":"a@b"},{"title":"PROD","email":"b@c"},{"title":"DEV","email":"c@d"}]