0

このように始まるjsonがあります。ユーザー、クレーム、および関連する第 1 レベルのデータに問題なくアクセスできます。特定の変数 (つまり、User.id=3) の ClaimResponse 内のデータにアクセスしようとしています。のバリエーションを試しました

x.ClaimResponse[ユーザーID].id
、運が悪い。このデータを取得する方法についての当面のアイデアはありますか?

{
"data": [
    {
        "User": {
            "score": "272",
            "id": "3"},
        "Claim": {
            "id": "2",
            "user_id": "3",
            "expiration": "2013-12-31 23:59:59",
            "editor_content": null,
            "point": "56.67",
            "claim_count": "3",
            "editor_pick": "0",
            "isCounterClaimed": "1",
            "headline": null,
            "subhead": null,
            "initial_point": "40",
            "claim_maker_cost": "60",
            "exp": "Dec 31, 2013"
        },
        "ClaimResponse": [
            {
                "id": "4",
                "claim_id": "2",
                "expiration": null,
                "response_type": "nay",
                "source": null,
                "created": "2013-05-15 03:28:18",
                "modified": "2013-05-15 03:28:18"
            },
            {
                "id": "12",
                "claim_id": "2",
                "expiration": null,
                "response_type": "yeh",
                "source": null,
                "created": "2013-05-15 14:47:30",
                "modified": "2013-05-15 14:47:30"
            },
            {
                "id": "13",
                "claim_id": "2",
                "expiration": null,
                "response_type": "nay",
                "source": null,
                "created": "2013-05-15 15:59:59",
                "modified": "2013-05-15 15:59:59"
            },
            {
                "id": "50",
                "claim_id": "2",
                "expiration": null,
                "response_type": "yeh",
                "source": null,
                "created": "2013-05-24 14:32:23",
                "modified": "2013-05-24 14:32:23"
            },
            {
                "id": "71",
                "claim_id": "2",
                "expiration": null,
                "response_type": "yeh",
                "source": null,
                "created": "2013-05-29 04:37:19",
                "modified": "2013-05-29 04:37:19"
            }
(...)
4

3 に答える 3

0

配列を返すキー ClaimResponse を使用してデータを取得した後、取得した配列の for ループを実行できます。

お気に入り

public static JSONObject ObjectWithIdandReponse(int _id,JSONArray responseArray) {
    for (JSONObject Obj in responseArray)
    {
     if(Obj.id==_id)
     return Obj;
    }
}

JSON Obj を返すメソッドを作成し、パラメーターをユーザー ID とクレームの配列として渡します

于 2013-05-30T05:13:12.230 に答える
0

特定の ID を持つ特定の ClaimResponse を取得しようとしていますか? もしそうなら、これを試してください:

var arr = x.ClaimResponse,
    userId = "3", //Set this to the uid you want
    length = arr.length,
    claim = null; //This variable stores the correct claim

for (var i = 0; i < length; i++) {
  claim = arr[i];
  if (claim.id === userId) {
    break;
  }
}
于 2013-05-30T05:18:26.397 に答える