この方法を使用しましたが、
NSDictionary *jsonObject=[NSJSONSerialization
JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:nil];
NSLog(@"jsonObject is %@",jsonObject);
「jsonObject is null」と出力されています。
「error:nil」に問題はありますか。
URLまたは接続方法を使用していません。
jsonファイルがあり、テーブルに表示したいです。
次のコードを試してください。
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&error];
NSArray* latestLoans = [json objectForKey:@"loans"];
NSLog(@"loans: %@", latestLoans);
Swift code:
NSData to NSDictionary
let dictionary:NSDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(jsonData)! as NSDictionary
NSDataからNSString
let resstr = NSString(data: res, encoding: NSUTF8StringEncoding)
JSON入力を確認してください。ルート要素が辞書でも配列でもない可能性がありますか?ドキュメントには、この場合のオプションとしてNSJSONReadingAllowFragmentsを指定する必要があると書かれています。
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
NSData *jsonData = [@"{ \"key1\": \"value1\" }" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonObject=[NSJSONSerialization
JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:nil];
NSLog(@"jsonObject is %@",jsonObject);
[p release];
}
出力:
2012-09-26 16:06:51.610 Untitled[19164:707] jsonObject is {
key1 = value1;
}
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
これは、トップポストのより簡潔なバージョンです。