0

これをWebサーバーからiOSのテーブルビューに解析しようとしています

{
  "transactions": [
    {
    "ID": "350",
    "description": "Macbook Pro 17 inch",
    "price": "2811.83"
    },
    {
    "ID": "351",
    "description": "Macbook - white",
    "price": "1720.10"
    },
    {
    "ID": "352",
    "description": "iPad 2",
    "price": "650.00"
    },
    {
    "ID": "353",
    "description": "Macbook Pro 17 inch",
    "price": "3233.98"
    },
    {
    "ID": "354",
    "description": "Macbook Pro 15 inch",
    "price": "2100.55"
    },
    {
    "ID": "355",
    "description": "Macbook Air",
    "price": "899.99"
    },
    {
    "ID": "356",
    "description": "Mac Pro",
    "price": "3400.77"
    }
  ]
}

これから欲しいのは、説明と価格だけです。各アイテムの価格を合計して合計を取得する必要があります。各トランザクション名は に保存してNSArrayから に表示する必要がありUITableViewます。

何か助けはありますか?JSONkit は SBJSON パーサーを提供しません

4

2 に答える 2

4

JSONKit は、その単純さと速度の点でとても気に入りました。それが返すのは、オブジェクトとしての最上位の構造であることを認識する必要があります。そのため、それについて考える必要があります。これは NSDictionary になり (型キャストできるようになります)、キー「トランザクション」が 1 つあります。

このキーは、NSDictionary オブジェクトの NSArray を返します。各オブジェクトには、キー ID、説明、および価格が含まれます。

したがって、次のようになります (itemListDataたとえば、URL からフェッチされた JSON データはどこにありますか):

JSONDecoder *decoder = [JSONDecoder decoderWithParseOptions:JKParseOptionStrict];
NSData *immutableItemList = [itemListData copy];
NSArray *returnedData = (NSArray *) [[decoder objectWithData:immutableItemList] objectForKey:@"transactions"];

そこで、生の JSON データを取得し、デコーダーをインスタンス化し、それをディクショナリにデコードして、ディクショナリ内の 1 つのオブジェクトを取得しました (この場合は、それが配列であるため)。初心者には悪くないですよね?

(追加する必要があります-NSDataの不変のコピーを作成する理由は、このコードスニペットが非同期ダウンロードにあり、connectionDidFinishLoadingメソッドでトリガーされるためです。)

于 2011-09-30T18:42:07.830 に答える
1

こんにちは、私が過去に行ったことは、Facebookにアクセスして開発者SDKをダウンロードすることです。その SDK には、優れた JSON 解析ツールがあります。ここで見つけることができますhttp://developers.facebook.com/docs/reference/iossdk/ 次に、それをプロジェクトに追加し、ヘッダーで

 #import "JSON.h"

そして、その文字列を取得したら、次のように言います

NSDictionary *data = [my_data_string JSONValue];
NSArray *transactions = [data objectForKey:@"Transactions"];

そしてそれはうまくいくはずです:)

于 2011-09-29T01:19:39.580 に答える