0

2 つの JSOn 応答を処理する方法を分離するのに問題があります。返される要素が 1 つだけの場合は、2 つとは異なる応答が返されます。

1 つの結果を次に示します。

{
    "voteMap": {
        "SID": "2727",
        "CNT": "1",
        "VTD": "N"
    }
}

そして2つ:

{
    "voteMap": [
        {
            "SID": "2814",
            "CNT": "1",
            "VTD": "N"
        },
        {
            "SID": "2815",
            "CNT": "1",
            "VTD": "N"
        }
    ]
}

1 つの配列から辞書の配列へと移行します。これが私がそれをどのように扱っているかです:

responseArr = jsonArray[@"voteMap"];

  if([jsonArray count] == 1){
       Song* song = [self findSong:[responseArr valueForKey:@"SID"]];
       song.votes =[responseArr valueForKey:@"CNT"];
       song.status = [responseArr valueForKey:@"VTD"];
        }           
   else{
         for (NSDictionary *dict in responseArr) {
            Song *song = [self findSong:[dict valueForKey:@"SID"]];
            song.votes =[dict valueForKey:@"CNT"];
            song.status = [dict valueForKey:@"VTD"];
            }
        }

フォーマットが悪くてすみません。起こっていること[jsonArray count] == 1は常に起こっていることです...それは常に戻ってくるので推測できますvoteMap

4

5 に答える 5