NSString があり、NSJSONSerialization を使用したい場合は可能ですか? どうすればいいですか?
4 に答える
まず、次のようNSString
にしてをに変換する必要がありますNSData
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
次に、JSONObjectWithData
メソッドを使用してJSONに変換します
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString
に変換する必要があります。NSData
その時点で+[NSJSONSerialization JSONObjectWithData:options:error:]
メソッドを使用できます。
NSString * jsonString = YOUR_STRING;
NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error = nil;
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (!json) {
// handle error
}
次のように言って、文字列を NSData に変換できます。
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
その後、 で使用できますNSJSONSerialization
。ただし、NSJSONSerialization
これは iOS5 のみであるため、TouchJSON や JSONKit などのライブラリを使用した方がよい場合があります。どちらも文字列を直接操作できるため、NSData に変換する手順を省くことができます。
私は、ネイティブ iOS JSON クラスを使用する実装と共に、ネイティブ iOS JSON クラスを一般的なプロトコルでラップする方法を示すブログ投稿を書きました。
このアプローチにより、ネイティブ機能の使用が非常に簡単になり、記述する必要のあるコードの量が削減されます。さらに、ネイティブ実装が不十分であることが判明した場合、たとえば JSONKit を使用してネイティブ実装を簡単に切り替えることができます。
http://danielsaidi.com/blog/2012/07/04/json-in-ios
ブログ投稿には、必要なすべてのコードが含まれています。コピー/貼り付けするだけです:)
それが役に立てば幸い!