の値name
自体が JSON 文字列です。
文字列をインスタンスに変換しNSData
ます (正しい文字列エンコーディングを使用しますNSUTF8StringEncoding
。ほとんどの場合に一般的に機能するため、ここでは例としてのみ使用します)。
スウィフト:
var name : NSString = who[0]["name"] as! NSString
var nameAsData : NSData? = name.dataUsingEncoding(NSUTF8StringEncoding)
目的 C:
NSString *name = who[0][@"name"];
NSData *nameAsData = [name dataUsingEncoding:NSUTF8StringEncoding];
次に、これを使用してそのデータを JSON オブジェクト (この場合は配列) に変換します。
迅速:
var error : NSError?
var names : NSArray = NSJSONSerialization.JSONObjectWithData(nameAsData!, options: nil, error: &error) as! NSArray;
if (error != nil) {
NSLog("Error reading JSON: %@", error!.localizedDescription)
}
目的 C:
NSError *__autoreleasing error;
NSArray *names = [NSJSONSerialization JSONObjectWithData:nameAsData options:kNilOptions error:&error];
if (error) {
NSLog(@"Error reading JSON: %@", error.localizedDescription);
}
したがって、JSON の解析中にエラーが発生しなかった場合を除き、はオブジェクトのnameAsData
でnames
ある必要があります。次に、それを使って好きなことを行うことができます。たとえば、「John」または「Jacques」を取得するには、次のようにします。NSArray
NSDictionary
迅速:
NSLog("first name: %@", names[0]["name"] as! NSString) // John
NSLog("second name: %@", names[1]["name"] as! NSString) // Jacques
目的 C:
NSLog(@"first name: %@", names[0][@"name"]); // John
NSLog(@"second name: %@", names[1][@"name"]); // Jacques