2016-10-05 6 views
-3

に私のJSON文字列は次のとおりです。NSDictionaryの

[email protected]"{data:[{\"type\":\"ex\",\"coordinate\":\"19.0760,73.8777\",\"title\":\"Awesome Event 1\"},{\"type\":\"pe\",\"coordinate\":\"19.0760,73.2777\",\"title\":\"Awesome Event 2\"},{\"type\":\"ev\",\"coordinate\":\"19.0760,72.4777\",\"title\":\"Awesome Event 3\"},{\"type\":\"ex\",\"coordinate\":\"19.0760,72.3777\",\"title\":\"Awesome Event 4\"},{\"type\":\"pe\",\"coordinate\":\"19.0760,72.1777\",\"title\":\"Awesome Event 5\"},{\"type\":\"ev\",\"coordinate\":\"19.0760,72.4777\",\"title\":\"Awesome Event 6\"},{\"type\":\"ex\",\"coordinate\":\"19.0760,72.5777\",\"title\":\"Awesome Event 7\"},{\"type\":\"pe\",\"coordinate\":\"19.0760,72.9777\",\"title\":\"Awesome Event 8\"},{\"type\":\"ev\",\"coordinate\":\"19.1760,72.8777\",\"title\":\"Awesome Event 9\"},{\"type\":\"ex\",\"coordinate\":\"19.4760,72.8777\",\"title\":\"Awesome Event 10\"},{\"type\":\"pe\",\"coordinate\":\"19.5760,72.8777\",\"title\":\"Awesome Event 11\"},{\"type\":\"ev\",\"coordinate\":\"19.3760,72.8777\",\"title\":\"Awesome Event 12\"}]}"; 

NSDictionaryのに変換する方法は?

+0

'NSDictionaryの* dictを= [NSJSONSerialization JSONObjectWithData:[jsonData dataUsingEncoding:NSUTF8StringEncoding]オプション:0エラー:&エラー]'?私は 'jsonData'を' jsonString'に改名します。なぜなら、 'Data'はここで' NSData'を考えるかもしれないからです。 – Larme

答えて

1

まず、jsonStringをJsonDataに変換します。あなたのコードに従って、jsonは文字列形式です。以下の手順に従ってください。

- >データ にjsonStringを変換する - > JsonDict

にデータを変換する

jsonStringデータその

データの後

NSData* data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 

にJsonDict

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

次に、キー名を使用してdictから値にアクセスできます。

+0

"data"フィールドから "type"にアクセスする方法 – Jane

+0

'jsonData'は' NSString'オブジェクトであるため、少なくともコードで警告が出てくるはずです(実行時にクラッシュすると思います)。 '+(id)JSONObjectWithData:options:error:'の最初のパラメータは 'NSData'オブジェクトでなければなりません。 – Larme

+0

どのように辞書に文字列にアクセスしますか?これは可能です –

0

NSJSONSerializationクラスとそのメソッドJSONObjectWithDataを使用すると、文字列をdictまたはjsonに変換できます。

NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
//        OR 
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
NSLog(@"string: %@",json);