5

次のように見える RESTful Web API によって返された JSON 配列を解析しようとしています (JSONKit を使用)。

[ { "DateCreated" : "/Date(1320296400000)/",
    "ID" : 1,
    "Summary" : "Summary 1",
    "Title" : "Title 1",
    "URL" : "URL 1"
  },
  { "DateCreated" : "/Date(1320296400000)/",
    "ID" : 2,
    "Summary" : "Summary 2",
    "Title" : "Title 2",
    "URL" : "URL 2"
  }
]

私が過去に扱ってきた JSON には通常、たとえば などの親要素がありnews:{{node1},{node2}}、次のように JSON 応答からそのノードを抽出できます。

NSString *response = [request responseString];
NSDictionary *deserializedData = [response objectFromJSONString];
NSArray *arrNews = [deserializedData objectForKey:@"news"];

私の JSON では、そのようなノードは存在しません。これは単なる生の配列です。これを NSArray (または UITableView にフックできるもの) に取り込むにはどうすればよいですか?

4

2 に答える 2

10

JSON データの外観から、deserializedDataはすでにJKDictionaryオブジェクトで満たされたJKArrayになっているはずです。

配列のようにアクセスしてみましたか?

for (NSDictionary * dataDict in deserializedData) {
    NSString * timeStamp = [dataDict objectForKey:@"DateCreated"];
    // and so on
}

これにより、JSON データのすべての要素がループされます。

于 2011-12-12T01:40:55.737 に答える
1

正当な JSON 文字列は、外側の「コンテナー」として、配列または辞書/「オブジェクト」のいずれかを持つことができます。サンプルの JSON には、外側の「コンテナー」として配列があります。完全に合法です。

どちらを期待するかわからない場合は、オブジェクトをテストして、それが何であるかを確認する必要があります。

于 2011-12-12T01:43:08.920 に答える