【问题标题】:ios - get values from NSDictionaryios - 从 NSDictionary 获取值
【发布时间】:2013-09-08 11:44:19
【问题描述】:

我的服务器上有 JSON,它被解析为 iOS 应用程序到 NSDictionary。 NSDictionary 看起来像这样:

(
        {
        text = Aaa;
        title = 1;
    },
        {
        text = Bbb;
        title = 2;
    }
)

我的问题是 - 如何从第一维获取文本,所以它应该是“Aaa”。我试过用这个:

[[[json allValues]objectAtIndex:0]objectAtIndex:0];

但是没有用,以错误结束

Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[__NSCFArray allValues]:
unrecognized selector sent to instance 0x714a050'

那么你能帮我吗,如何从指定的索引中获取一个值?谢谢!

【问题讨论】:

  • 你是从 PHP 来的,它是丑陋的数组字典热点吗?
  • 你拥有的是一个包含两个字典的数组。 “()”字符表示一个数组。
  • 它来自我的例子......但不要在意,我已经解决了...... :-)(感谢 Ramy Al Zuhouri)

标签: ios json nsdictionary


【解决方案1】:

该错误消息只是告诉您NSDictionary(这是该数组的第一个对象,以及第二个对象)没有响应objectAtIndex

这会有点冗长,但它解释得更好:

NSArray *jsonArray = [json allValues];
NSDictionary *firstObjectDict = [jsonArray objectAtIndex:0];
NSString *myValue = [firstObjectDict valueForKey:@"text"];

【讨论】:

    【解决方案2】:

    您的 JSON 对象是一个数组,包含两个字典。这就是获取值的方法:

    NSDictionary* dict1= json[0];
    NSString* text= dict1[@"text"];
    NSString* title= dict1[@"title"];
    

    【讨论】:

    • 仍然收到此错误:(由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__NSCFArray allValues]:无法识别的选择器已发送到实例 0x71571b0'
    • @stepik21 抱歉,您没有发送 allValues 消息,我编辑了答案,再试一次 :-)
    【解决方案3】:

    试试这个:

    NSString *txt = [[json objectAtIndex:0] objectForKey:@"text"];
    

    更新:已修复错误。谢谢尤纳斯。

    【讨论】:

    • 'NSInvalidArgumentException',原因:'-[__NSCFArray allValues]:无法识别的选择器发送到实例 0x8892320'
    • @stepik21 :请分享您如何解析 json。您还应该测试变量 json 是否实际上是 NSDictionary。试试这个 NSLog(@"%@",[json desc]);
    • 我正在使用这个:json = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"url.com"]] options:kNilOptions error:&e]; 但没关系,我已经解决了:-)
    • [json allValues] 你为什么需要那个? [[json objectAtIndex:0] objectForKey:@"text"] 完成这项工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    相关资源
    最近更新 更多