0

以下のデータ サンプルでは、​​セクションからループしてデータを取得しようとしていますparticipants

ajax 呼び出しを介して、次のように他のデータにアクセスできますが、このデータの for ステートメントがわかりません。

var userData = $.ajax({ 
    type: "POST",
    url: userurl,
    dataType: "json",
    //data: { point: point, claimId: id, type: val,follow: followuser }
    })
    .success(function(json) {
      $.each(json.data, function(i,x){
        var id = x.Claim.user_id; // ETC
                    ...

これはうまくいきます。この形式を使用すると、次のような個々のデータにアクセスできますx.participants[8].user_idparticipantsたとえば、ループしてすべての参加者のuser_idを取得する方法がわかりません。

{
"data": [
    {
        "Claim": {
            "img_url": null,
            "id": "4",
            "user_id": "3",
            "claim_status": "started",
            "exp": "Sep 30, 2013"
        },
        "User": {
            "score": "0",
            "id": "3"
         },
        "ClaimResponse": [
            {
                "id": "32",
                "claim_id": "4",
                "user_id": "14",
                "created": "2013-06-10 03:18:35",
                "modified": "2013-06-10 03:18:35"
            },
            {
                "id": "107",
                "claim_id": "4",
                "user_id": "8",
                "created": "2013-06-28 02:37:10",
                "modified": "2013-06-28 02:37:10"
            },
            {
                "id": "140",
                "claim_id": "4",
                "user_id": "976",
                "created": "2013-06-28 04:19:22",
                "modified": "2013-06-28 04:19:22"
            },
            {
                "id": "152",
                "claim_id": "4",
                "user_id": "19",
                "created": "2013-07-03 02:27:12",
                "modified": "2013-07-03 02:27:12"
            },
            {
                "id": "154",
                "claim_id": "4",
                "user_id": "1158",
                "created": "2013-07-05 03:16:48",
                "modified": "2013-07-05 03:16:48"
            }
        ],
        "participants": {
            "14": {
                "user_id": "14",
                "twitter_image_url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png"
            },
            "8": {
                "user_id": "8",
                "twitter_image_url": "https://twimg0-a.akamaihd.net/sticky/default_profile_images/default_profile_3_normal.png"
            },
            "19": {
                "user_id": "19",
                "twitter_image_url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"
            },
            "1158": {
                "user_id": "1158",
                "twitter_image_url": "https://twimg0-a.akamaihd.net/sticky/default_profile_images/default_profile_5_normal.png"
            }
        },
        "viewer": {
            "isResponsed": false,
            "isOwner": false,
            "lockedInPoint": 0,
            "response": null,
            "cut_loss": false,
            "cut_loss_price": null
        }
    },
    {
        "Claim": {
            "img_url": null,
            "id": "133",
            "user_id": "14",
            "claim_status": "started",
            "exp": "Jul 15, 2013"
        },
        "User": {
            "score": "-40",
            "id": "14"
        },
        "ClaimResponse": [
            {
                "id": "172",
                "claim_id": "133",
                "user_id": "8",
                "created": "2013-07-12 20:36:16",
                "modified": "2013-07-12 20:36:16"
            },
            {
                "id": "176",
                "claim_id": "133",
                "user_id": "1159",
                "created": "2013-07-13 02:52:31",
                "modified": "2013-07-13 02:52:31"
            }
        ],
        "participants": {
            "8": {
                "user_id": "8",
               "twitter_image_url": "https://twimg0-a.akamaihd.net/sticky/default_profile_images/default_profile_5_normal.png"

            },
            "1159": {
                "user_id": "1159",
               "twitter_image_url": "https://twimg0-a.akamaihd.net/sticky/default_profile_images/default_profile_5_normal.png"

            }
        },
        "viewer": {
            "isResponsed": false,
            "isOwner": false,
            "lockedInPoint": 0,
            "response": null,
            "cut_loss": false,
            "cut_loss_price": null
        }
    }
],
"errors": [],
"success": true,
"code": 200
}

編集: @ohgodwhyの助けに感謝します。たぶん、これは私がやろうとしていることをよりよく示しています。それぞれの主張に関連付けられた参加者のアイコンを希望します。近いですが、最初のクレームからすべての参加者を引き込んでいるようです...:

http://jsfiddle.net/gkGP4/5/

4

4 に答える 4

0

claimid と関連する参加者 ID を含む結果セットを探している場合

var result = $.map(response.data, function(item){
    return { ClaimId : item.Claim.id, Participants: $.map(item.participants, function(item1){ return item1.user_id; }) };
});
console.log(result);

お役に立てれば。

于 2013-07-14T18:28:50.047 に答える