如何获取 JSON 响应数组的所有索引值?

Posted

技术标签:

【中文标题】如何获取 JSON 响应数组的所有索引值?【英文标题】:How to get JSON response array all index values? 【发布时间】: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 响应中获得类似于上述控制台输出的外观。 【参考方案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];

【讨论】:

您可以创建数组而不是字符串和整数,然后您将在数组中一次获取所有数据

以上是关于如何获取 JSON 响应数组的所有索引值?的主要内容,如果未能解决你的问题,请参考以下文章

如何实现 JSON 解析代码以获取对 NSArray 的响应?

如何在swift中将json数组保存和检索到用户默认值?

如何使用 Guzzle 和 Laravel 从 JSON 响应中提取单个数组值

如何从 iOS 中的 JSON 响应中获取价值

如何根据数组值获取索引

如何识别 JSON 响应中的特定值