0

現在、iPhone アプリ内に、解析する必要がある JSON オブジェクトを含む URL があります。

JSON オブジェクトをフェッチし、オブジェクトを NSString に変換することができました。問題はオブジェクト/NSString オブジェクトの解析です。

現在SBJSONを使用しています。

SBJSON のフレームワークを使用して、JSON オブジェクトの主要な要素を反復処理するにはどうすればよいですか?

{
   "status":"SUCCESS",
   "fields":[
      {
         "type":"instant",
         "field":"GenerationPower",
         "label":"now",

JSON オブジェクトは、これらのキーとキー要素だけよりもはるかに大きいですが、この問題が解決されれば、参照があるため、JSON オブジェクトの残りの部分は簡単になると確信しています。

ありがとう、スタックオーバーフロー!

編集: これは私の問題を明確にするためのコードです。

+ (NSString *) pullingInfo
{
    NSURL *solarWebURL = [NSURL URLWithString:myurl];

    if (solarWebURL)
    {
        NSLog(@"Calling: %@", solarWebURL);

        NSData *jsonData = [NSData dataWithContentsOfURL:solarWebURL];

        NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

        return jsonString;
    }

    NSString* errorMessage = @"Error reading URL";
    return errorMessage;
}

+ (NSDictionary *) jsonDictionaryObject
{
    NSDictionary * jsonDictionary = [[NSDictionary alloc] init];

    NSString * monroeString = [MonroeParser pullingInfo];


    return jsonDictionary;
}

前に言ったように、既に JSON オブジェクトを NSString オブジェクト "jsonString" にロードしています。それでは、文字列の解析を開始したいと思います。

解析に JSON のフレームワークを使用する必要さえないかもしれないと思います。おそらく、Apple が提供する NSString 規則を使用して NSString を解析することができます。

何か案は?しかし、これは効率的ではないかもしれません....

4

1 に答える 1

1

SBJSON を使用しているのに、なぜ NSData を NSString に変換するのですか? SBJSONParser のメソッドを使用-objectWithDataして、NSData を NSDictionary に直接読み込むことができます。

http://sbjson.org/api/3.2/Classes/SBJsonParser.html#//api/name/objectWithData :

pullInfo が ID を返すようにします。そして、関数を呼び出すときに、id が NSDictionary または NSArray タイプであるかどうかを確認し、それに応じて解析します。

于 2013-05-27T03:08:06.690 に答える