2 lantianyiming lantianyiming 于 2013.08.05 16:44 提问

如何访问NSDictionary的内容

在访问字典内容的时候失败:

NSLog(@"self.userCommentsArray %@",self.userCommentsArray);返回null。

请帮忙:

NSData *jsonData = [NSData dataWithContentsOfURL:myURL];
NSDictionary *userCommentsDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
    NSLog(@"userCommentsDictionary %@",userCommentsDictionary); // this works
    self.userCommentsArray = [[userCommentsDictionary objectForKey:@"from"] objectForKey:@"name"];
    NSLog(@"self.userCommentsArray %@",self.userCommentsArray); 

这是dicitionary的NSlog输出:

userCommentsDictionary {
        data =     (
                    {
                created = "2013-07-16T18:42:56+02:00";
                from =             {
                    id = 27;
                    name = "user-4";
                };
                id = 2553;
                message = "liquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum";
            },
                    {
                created = "2013-07-16T18:42:56+02:00";
                from =             {
                    id = 28;
                    name = "user-5";
                };
                id = 2554;
                message = "x ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum";
            },
                    {
                created = "2013-07-19T16:18:56+02:00";
                from =             {
                    id = 24;
                    name = "user-1";
                };
                id = 5125;
                message = test comment;
            },
                    {
                created = "2013-07-19T17:00:21+02:00";
                from =             {
                    id = 24;
                    name = "user-1";
                };
                id = 5126;
                message = "test comment ";
       }
        );
        meta =     {
            totalCount = 18;
        };
    }

1个回答

zhanglei5415
zhanglei5415   Rxr 2013.08.05 17:00
已采纳

userCommentsDictionary 中可以根据data得到一组数据。你要找的内容就在这一组数据中

NSArray *data=userCommentsDictionary[@"data"];

这时返回的是一个数组,你可以根据下标索引取任意一行中的数据,也可以循环遍历所有的数据。下面的代码取的是第一行的数据

 id entity=[data objectAtIndex:0];

再取对象中的from下的name

NSString *name=entity[@"from"][@"name"];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
多层NSDictionary 的读取
objective c代码       NSUserDefaults *uDefaults = [NSUserDefaults standardUserDefaults];       NSDictionary *mgzDict = [uDefaults obje
怎么改变NSDictionary中对应该key的Value
NSDictionary是不可变字典,因此不可以修改,如果要修改请用NSMutableDictionary:     for (NSMutableDictionary *dic in recordFileArray) {                        [dic setObject:@"1" forKey:@"isChecked"];
集合属性列表类(NSArray与NSDictionary)读写文件操作
本文参照自: http://blog.csdn.net/zhangmiaoping23/article/details/42644251 http://www.xuebuyuan.com/1686844.html 一、前言 iOS中文件的存储位置主要有以下几类: Documents:用于存储应用程序中经常需要读取或写入的常规文件。 tmp:用于存储应用程序运行时生成的文件。(随
iOS集合之NSDictionary与NSMutableDictionary
1、NSDictionary功能与用法 类方法与实例方法创建NSDictionary对象,类方法以dictionary开始,而实例方法则以init开头,下面是常见的方法: dictionary:创建一个不包含任何key-value对的NSDictionarydictionaryWithContentsOfFile:/initWithContentsOfFile:读取指定文件的内容,使用
【读书笔记】iOS-NSDictionary与NSArray的比较
有时候为什么不用数组存储然后在数组里查询数值呢?字典(也称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。对于频繁的查询和大型的数据集来说,使用字典比数组要快很多。实际上字典非常快。 参考资料:《Objective-C基础教程》
iOS中NSDictionary的遍历
法一 据说是开发文档中的方法,未考证。 NSEnumerator *enumerator = [myDictionary keyEnumerator]; id key; while ((key = [enumerator nextObject])) { /* code that uses the returned key */ } 法二 @未解提供,也是最方便用的最多的一种方
ios 如何从 NSDictionary 获取一个整数值?
我有这个奇怪的问题。NSDictionary 没有返回正确的整数值。 服务器的 JSON 响应代码。 { "status":"ok", "error_code":0, "data" : [], "msg":"everything is working!" } JSON 将被转换为 NSDictionary。 NSError *error = nil; NSDictionary *
iOS之NSDictionary使用集合和各种为空判断
========JSON字符串转换成字典======== NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *err; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData ...
NSArray和NSDictionary只能存储对象
NSArray和NSDictionary只能存储对象,而不能直接存储任何基本类型的数据,如int、float和struct
处理从服务返回的NSDictionary值为NSNull或者<null>问题
在APP开发过程中,我们有时候要从服务器加载数据时,一般是都是用json或者xml解析后用NSDictionary保存,但是从服务器加载过来的数据直接使用时会崩溃,是因为在NSDictionary中的某个值为或者NSnull ,但是我们用一般的检查根本检查不出来,如 if( [obc objectForKey:key]==nil) 没有效果,这时候就要对NSDictionary的中值做处理了,把N