NSData
in でjson オブジェクトを作成する方法Objective C
。私はNSData
変数に値を持っています。
12348 次
3 に答える
6
iOS 5 ではこのように使用できます (json 構造が確実な場合は、直接使用するNSArray
かNSDictionary
、キャストを実行できます)
NSError *jsonError;
id jsonDictionaryOrArray = [NSJSONSerialization JSONObjectWithData:myData options:NULL error:&jsonError];
if(jsonError) {
// check the error description
NSLog(@"json error : %@", [jsonError localizedDescription]);
} else {
// use the jsonDictionaryOrArray
}
于 2012-09-17T10:28:01.917 に答える
2
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"youur link"]];
id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
if([jsonObjects isKindOfClass:[NSArray class]]){
//Is array
}else if([jsonObjects isKindOfClass:[NSDictionary class]]){
//is dictionary
}else{
//is something else
}
SWIFT用に編集
do {
if let jsonArray = try JSONSerialization.jsonObject(with: data, options : .allowFragments) as? [Dictionary<String,Any>] {
} else {
print("bad json")
}
} catch let error as NSError {
print(error)
}
于 2012-09-17T10:39:17.200 に答える
2
NSData オブジェクトに値がある場合は、次のように NSString 変数に変換できます
NSString *response = [[NSString alloc] initWithData:receivedData
encoding:NSUTF8StringEncoding];
編集済み...
あなたが何を望んでいるのかわかりませんが、次のような文字列からjson配列を提供します..
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
NSArray *arrData = [json objectWithString:responseString error:&error];
[responseString release];
配列でデータを取得できます
これがあなたの仲間に役立つことを願っています...
:)
于 2012-09-17T10:26:30.513 に答える