如何手动读取JSON

时间:2011-12-26 15:49:21

标签: iphone objective-c ios json ipad

有人可以给我一些关于阅读JSON的建议吗?我有一个JSON的RSS源,但我不知道如何解密它所以我可以在代码中使用它。在过去,我会解析JSON,但我会从网络上找到一个API,说“关键字专辑是一个对象列表”。那么我就会解析JSON并将“专辑”推入NSArray。如果重要的话,我正在使用SBJSON for iOS。

我正在尝试从iTunes获取RSS数据,但我没有在任何地方看到API文档,也不确定如何正确解析数据。

这是链接: iTunes JSON

1 个答案:

答案 0 :(得分:7)

我只是想让你了解一下,你必须挖掘北斗以获得更多数据。这是解析以下JSON的方法:

{
  "feed": {
    "author": {
      "name": {
        "label": "iTunes Store"
      },
      "uri": {
        "label": "http://www.apple.com/itunes/"
      }
    },
    "entry": [
      {
        "im:name": {
          "label": "Sexy and I Know It"
        },
        "im:image": [
          {
            "label": "http://a5.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.55x55-70.jpg",
            "attributes": {
              "height": "55"
            }
          },
          {
            "label": "http://a2.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.60x60-50.jpg",
            "attributes": {
              "height": "60"
            }
          },
          {
            "label": "http://a3.mzstatic.com/us/r1000/037/Music/3c/0c/ba/mzi.levtcsmk.170x170-75.jpg",
            "attributes": {
              "height": "170"
            }
          }
        ],

假设上述数据存储在名为NSString的{​​{1}}。

将json数据读入json

NSDictionary

获取NSDictionary *data = [json JSONValue]; 对象的NSDictionary表示

feed

获取NSDictionary *feed = (NSDictionary *) [data objectForKey:@"feed"]; 对象的NSDictionary表示

author

获取NSDictionary *author = (NSDictionary *) [feed objectForKey:@"author"]; 对象的NSDictionary表示

name

获取NSDictionary *name = (NSDictionary *) [author objectForKey:@"name"]; 对象的NSString表示

label

......等等

现在让我们获取入口对象的集合

获取NSString *label = (NSString *) [name objectForKey:@"label"]; 对象的NSArray表示

entry

让我们从条目集合中获取一个NSArray的Image对象

NSArray *entry = (NSArray *) [data objectForKey:@"entry"];

希望能帮助您理解解析流程。