this、this、thisはthisになるまで読んでいます。JSONArrayをAjaxから呼び出す方法を指定する方法jquery?
私がやってみたいことは、Ajaxの呼び出しから返されたデータを反復することです。これはPHP側のjson_encode
です。
これは私がconsole.log(data)
を使用するときに返されるオブジェクトの構造である:
Object {0: "218", 1: "SCT_22156", 2: "10456", 3: "S5_MAN_Artwork-Processing", 4: "Duma Guete", ID: "218", ARTICLE_ID: "SCT_22156", METADATA_ID: "10456", FROM_STAGE: "S5_MAN_Artwork-Processing", SEND_FROM: "Duma Guete"}
$.each(data, function(k, v) {
console.log(v.METADATA_ID);
});
をしかし、これはundefined
を返します。metadata_id
)を取得します。
注: ajax呼び出し中にデータが1つ以上のオブジェクトに返される可能性があります。
返されたデータが2つ以上のオブジェクトの場合は、undefined
が返されないため、JSONArrayになります。したがって、返されたデータが次のような場合:
Object [{"data":"value"..},{"data":"value"..}]
$.each
が問題なく動作します。
サーバー側(php
)にJSONArrayが1つのオブジェクトのみを含んでいても返すように指定することはできますか?
私もfor in loop
を使ってみましたが、逆にJSONArrayでは動作しません。 timeouts
も追加しようとしましたが、運はありません。私はここで間違って何をしていますか?
これは私のAJAX呼び出しです:
$.ajax({
type:'POST',
url: ,
data:,
dataType : 'json',
success: function(data){
console.log(data);
if(data){
$.each(data, function(k, v) {
console.log(v.SEND_FROM);
});
}
},
error: function(jqXhr, textStatus, errorThrown){
console.log(errorThrown);
}
});
が、私はこのトリックを使用してみました:ブラケットを追加
$.each([data], function(k, v) {
console.log(v.METADATA_ID);
});
が、それはJSONArray(複数のオブジェクト)の結果についてundefined
の原因となります。
それは本当に私が必要との直接の答えではありませんが、あなたの '$ .isArray'の周り別の方法を見つけるために私を助けて。ありがとうございました。 – threeFatCat