NSStringがあり、NSJSONSerializationを使用したい場合は可能ですか?どうすればいいですか?
まず、以下を実行して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
ブログの投稿には、必要なすべてのコードが含まれています。ただコピー/貼り付け:)
それが役に立てば幸い!