この JSON 文字列を検討してください。
{
"arrayOfData": [
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
}
これは有効な JSON 文字列です。http://jsonlint.com/を使用して有効性を確認できます。
jsonData
NSData 型の変数に JSON データがあるとします。SBJSONを使用すると、JSON を次のように解析できます。
NSDictionary *jsonDictionary = [jsonData JSONValue];
NSArray *array = [jsonDictionary objectForKey:@"arrayOfData"];
NSMutableArray *result = [[NSMutableArray alloc]init];
for(NSDictionary *dict in array){
[result addObject:[dict objectForKey:@"body"]];
}
この操作の後、キーのすべての値body
が結果配列になります。
「3」が配列カウントの場合、その値を次のように JSON に含めた可能性があります。
{
"numberOfElementsInArray": 3,
"arrayOfData": [
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
}
JSON に関するこのチュートリアルを参照してください。JSON を理解するには、このWeb サイトを読んでおく必要があります
ホットリックスによって追加されました
理解できないのは、元の JSON が本質的に次のようなものだったことです。
[
3,
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
元の JSON ソースではなく、NSLog オブジェクトのダンプであるため、形式が異なります。完全に正当な JSON。