-1

これは返された JSON です

var errorsObject = JSON.parse('{ "fieldErrors": {"name":["You must enter your name1"],"name":["You must enter your name2"],"age":["Only people ages 13 to 19 may take this quiz"]}}');

以下のコードの最初のループは、名前、年齢などのキー名を取得する場所で正常に機能します。2 番目のループでは、外側のループから選択されたキーの値を取得します。Issue is errors.fieldErrors[key]. 最初に名前を持つキーのみをループし、2 つの値を取得する必要があります。

$.each(errors.fieldErrors, function(key, val) {
    alert("key->" + key); //Fine
    $.each(errors.fieldErrors[key], function(index, val) {
        alert("key->" + key + ", val->" + val);
    });
});
4

1 に答える 1

6

オブジェクトに同じキーを 2 回含めることはできないため、あなたがしようとしていることは不可能です。JSON が解析されると、最初のメッセージが失われます。

ただし、値は配列です。JSON を返すコードを変更して、これらの配列を適切に使用しないでください。そして、それがPHPコードによって作成されたと仮定すると、そのようなJSONを作成できるという事実は、代わりに文字列関数を使用して作成する誰かのようなにおいがしますjson_encode-変更する必要がある別のこと...

于 2012-11-13T15:59:53.747 に答える