• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 在 iOS 中解析 JSON(再次)

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:54:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我只是在 iOS 中使用 JSON 解析器,它作为一个(简单)示例运行良好。但我想知道如何真正解析(有点)更复杂的东西,Twitter 趋势 JSON,像这样:

{
    "trends": {
        "2011-03-13 11:42:17": [
            {
                "events": null,
                "query": "Fukushima",
                "promoted_content": null,
                "name": "Fukushima"
            },
            {
                "events": null,
                "query": "Rebecca Black",
                "promoted_content": null,
                "name": "Rebecca Black"
            },
            {
                "events": null,
                "query": "earl Harbour",
                "promoted_content": null,
                "name": "earl Harbour"
            },
            ...
            {
                "events": null,
                "query": "Magdalena Neuner",
                "promoted_content": null,
                "name": "Magdalena Neuner"
            }
        ]
    },
    "as_of": 1300016537
}

如何只返回前 3 个查询?在这种情况下:福岛丽贝卡·布莱克珍珠港

使用示例代码,它是这样的:

for (int i = 0; i < [luckyNumbers count]; i++)
    [text appendFormat"%@\n", [luckyNumbers objectAtIndex:i]];

虽然这是一个更简单的提要,但是否可以以相同的方式处理我正在寻找的内容?

我正在尝试返回“查询”的值:

所以我正在这样做:

NSLog(@"%@", [[luckyNumbers objectForKey"trends"]);

这当然会记录键“趋势”的内容,我如何不仅返回趋势的第一个(也是唯一的)键,还向下挖掘一个级别以返回“查询”的内容?

我也尝试过这样的事情:

NSString *date = [[[luckyNumbers valueForKeyPath"trends"] allKeys] description];
NSArray *trends = [luckyNumbers objectForKey"trends"];
NSLog(@"%@", [trends valueForKeyPath:date]);

但是不行……

编辑(aftet honcheng 的回答):

因为我想遍历“趋势”的结果,所以我在做:

NSDictionary *luckyNumbers = [responseString JSONValue];
NSArray *keys = [[luckyNumbers objectForKey"trends"] allKeys];

for (int i =0; i < [keys count]; i++) {

NSLog(@"%@", [keys objectAtIndex:i]);


    }

显然出了点问题,因为我没有得到任何结果..



Best Answer-推荐答案


JSON 解析器通常返回原生 NSObject,例如 NSDictionary 和 NSArray。解析后,您只需将其视为一个新对象。

[luckyNumbers allKeys] 返回一个 NSArray ["trends", "as_of"] [[luckyNumbers objectForKey"trends"] allKeys"] 返回一个 NSArray ["2011-03-13 11:42:17"]

由于 allKeys 返回一个 NSArray,你可以只使用一个 for 循环来获取你所有的键。

关于iphone - 在 iOS 中解析 JSON(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366694/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap