web-dev-qa-db-ja.com

NSStringからのNSJSONSerialization

NSStringがあり、NSJSONSerializationを使用したい場合は可能ですか?どうすればいいですか?

43
aherlambang

まず、以下を実行してNSStringNSDataに変換する必要があります

NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];

次に、単にJSONObjectWithDataメソッドを使用してJSONに変換します

id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
91
Jakub Arnold

NSStringNSDataに変換する必要があります。その時点で、+[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
}
12
sho

次のように言って、文字列をNSDataに変換できます。

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

その後、NSJSONSerializationで使用できます。ただし、NSJSONSerializationはiOS5のみであるため、TouchJSONやJSONKitのようなライブラリを使用するとよいでしょう。どちらも文字列を直接操作できるため、NSDataに変換する手間が省けます。

1
Nick Lockwood

ネイティブiOS JSONクラスを一般的なプロトコルでラップする方法と、ネイティブiOS JSONクラスを使用する実装を示すブログ記事を書きました。

このアプローチにより、ネイティブ機能の使用がはるかに簡単になり、記述しなければならないコードの量が削減されます。さらに、ネイティブ実装が不十分であることが判明した場合、ネイティブ実装をJSONKitなどで簡単に切り替えることができます。

http://danielsaidi.com/blog/2012/07/04/json-in-ios

ブログの投稿には、必要なすべてのコードが含まれています。ただコピー/貼り付け:)

それが役に立てば幸い!

0
Daniel Saidi