2010-12-19 10 views
1

とJSONの内容を取得 - http://stig.github.com/json-framework/問題私は灯台APIからいくつかのJSONを解析するためにObjective-CのJSONのフレームワークを使用していますJSONValue

私が持っているように見えるが、私は問題なく、他のAPIと前フレームワークを使用しましたJSONValueを使用して灯台APIから結果を取得しようとすると、行き止まりになります。

値が誤って返されている表示されます。

NSArray *results = [json_string JSONValue]; 

for (NSDictionary *project in results){ 
    NSLog(@"project found"); 
} 

私はそれがJSON文字列に貫通itterateするための少なくとも7つのオブジェクトがある知っているが、このループは1回だけ実行されます。プロジェクトはNSDictionaryではなく文字列としても設定されています。プロジェクトでobjectForKeyを呼び出すとエラーが発生します。

[NSCFString objectForKey:]: unrecognized selector sent to instance 

私はかなり私のJSON文字列がここにあり、ここに困惑して、これは灯台APIから返される文字列を使用して問題ではないと私はちょうど誤った内容を取得しようとしています期待しています:http://pastie.org/1390233

+0

これは解析されたJSON(JavaScriptオブジェクトなど)ですか、解析されていない(文字列ですか)のですか? JSONフレームワークは何を受け取ると思われますか? –

答えて

5

パーサの動作が正しいです。辞書resultsには、配列が1つのキー(projects)のみが含まれています。個々のプロジェクトをループするには、このprojectsプロパティを列挙する必要があります。

NSArray *projects = [results objectForKey:@"projects"]; 

for(NSDictionary *item in projects) { 
    NSDictionary *project = [item objectForKey:@"project"]; 
    // now project should have the desired keys 
} 
+0

まさに正しい。 JSONの構文解析を始めて、物事をかなり深く入れ子にすることができることを認識し始めたときには、少し時間がかかりました。プロジェクト - >結果 - >結果。 @Anuragが示すように、ネストされた列挙子は、それらに取り組むための素晴らしい方法です。 –

+0

ありがとう、私は今理解しています:) – Alex

関連する問題