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