【问题标题】:Parse NSDictionary in NSArray created from JSON in Objective-C解析从Objective-C中的JSON创建的NSArray中的NSDictionary
【发布时间】:2015-01-19 18:22:04
【问题描述】:

我正在尝试从这个由 JSON 字符串创建的字典中获取信息。 JSON 字符串从服务器返回并放入字典中。该字典被传递给 myMethod 假设将其分解,以便我可以获得每条记录包含的信息。

“记录集”是一个数组。 Record 也是一个字典数组。

如何找到字典?我不断收到 NSDictionaryM objectAtIndex: unrecognized selector sent to instance

Recordset =     (
     {
     Record =             (
        {
            MODMAKlMakeKey = 1112;
            MODlModelKey = 1691;
            MODvc50Name = "10/12 Series 2";
     },
     {
            MODMAKlMakeKey = 1112;
            MODlModelKey = 1687;
            MODvc50Name = "10/4";
     },
     {
            MODMAKlMakeKey = 1112;
            MODlModelKey = 1686;
            MODvc50Name = "10/6";
     },

等等……等等……(大约100条记录)

这就是我所拥有的

- (void) myMethod : (NSDictionary*) dictionary {

    //INITIAL
    NSArray * arrRecordSet   = [dictionary objectForKey:@"Recordset"];
    NSArray * arrRecord      = [arrRecordSet objectAtIndex:0];
    NSDictionary * theRecord    = [NSDictionary dictionaryWithObjects:arrRecord forKeys:[arrRecord objectAtIndex:0]];
    for (int i = 0; i < arrRecord.count; i++) {
        NSLog(@"MODMAKlMakeKey: %@", [theRecord objectForKey:@"MODMAKlMakeKey"]);
    }

}

【问题讨论】:

  • 查看 JSON。 Recordset 给你一个字典数组,而不是数组数组。
  • 天哪!最后一个小时我一直在殴打自己!谢谢!
  • 阅读留言!!!

标签: objective-c json nsarray nsdictionary


【解决方案1】:

试试这个

NSArray * arrRecord = [arrRecordSet objectForKey:@"Record"];

【讨论】:

    【解决方案2】:

    先尝试检查 [dictionary objectForKey:@"Recordset"] 的返回是否真的是字典或数组。

    为此:

        if([[dictionary objectForKey:@"Recordset"] isKindOfClass:[NSArray class]]) {
             //object is array
        }
        else if ([[dictionary objectForKey:@"Recordset"] isKindOfClass:[NSDictionary class]]) {
            //object is dictionary
    
        }
    

    【讨论】:

    • 这不是问题。 Recordset 将返回一个数组。查看 JSON。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多