【问题标题】:How to get JSON response array all index values?如何获取 JSON 响应数组的所有索引值?
【发布时间】:2014-09-18 05:12:04
【问题描述】:

我需要获取 JSON 响应数组的所有索引值并维护单独的数组。下面我发布了我的 JSON 响应,我希望控制台输出也如下所示。请帮我。

response : [ {

        A =  [  {

                    name : "sons";
                    age = [
                                4
                          ];
                },
                {
                    name : "rondo";
                    age = [
                                2
                          ];
                },

             ];


           } ]

我需要存储单独的数组单独的值,如下所示控制台输出

2014-09-18 10:24:39.461 Myapp[1133:60b] RESULT : {
    name = "sons";
    age  = 4;
}
2014-09-18 10:24:39.462 Myapp[1133:60b] RESULT : {
    name = "rondo";
    age  = 2;
}

下面我试过了,但我知道我只能得到第 0 个索引值,但我需要从 JSON 响应数组中获取所有索引值:

myvalue = [NSString stringWithFormat:@"%@",[[[[responsData objectAtIndex:0] valueForKey:@"A"] objectAtIndex:0] valueForKey:@"name"]];

【问题讨论】:

  • 你尝试了多远?
  • 你需要解析json并生成你想要的格式
  • 没有。我需要从#1 JSON 响应中获得类似于上述控制台输出的外观。

标签: ios json object


【解决方案1】:

如果要获取所有对象,请使用相应的键获取数组。然后根据数组计数通过迭代for循环将结果存储到另一个数组中。

NSArray *recordsArr = [[responsedata objectAtIndex:0] valueForKey:@"A"];

NSMutableArray *resultArray = [[NSMutableArray alloc] init];
for (int i = 0; i < [recordsArr count]; i ++) {
    NSMutableDictionary *recordDict = [[NSMutableDictionary alloc] init];

    [recordDict setObject:[[recordsArr objectAtIndex:i] valueForKey:@"name"] forKey:@"name"];
    [recordDict setObject:[[[recordsArr objectAtIndex:i] valueForKey:@"age"] objectAtIndex:0] forKey:@"age"];

    [resultArray addObject:recordDict];
}

NSLog(@"%@",resultArray);

输出:

2014-09-18 12:49:22.047 testprj[1044:60b] (
        {
        age = 4;
        name = sons;
    },
        {
        age = 2;
        name = rondo;
    }
)

【讨论】:

  • 你的回答真的很棒,对我很有帮助。顺便说一句,您应该删除 [objectAtIndex:0] 以获取年龄值。非常感谢。
  • 不客气。我只是根据输出编写了代码。你可以根据你想要的输出修改代码:)
  • 好,非常感谢!
【解决方案2】:
NSString *strName = (NSString *) [yourArray valueForKey:@"name"];
NSInteger age = [(NSNumber *) [yourArray valueForKey:@"age"] integerValue];

【讨论】:

  • 您可以创建数组而不是字符串和整数,然后您将在数组中一次获取所有数据
猜你喜欢
  • 2016-06-25
  • 1970-01-01
  • 2019-03-23
  • 2020-01-18
  • 2018-12-09
  • 1970-01-01
  • 2016-03-20
  • 2021-03-17
  • 2018-02-25
相关资源
最近更新 更多