gpt4 book ai didi

ios - 使用 AFNetworking 解析 JSON

转载 作者:行者123 更新时间:2023-11-29 01:11:37 24 4
gpt4 key购买 nike

我试图通过创建 NSDictionary 的子类并添加 getSomeProperty 方法来解析 Objective-C 中的 JSON 页面。我已经能够使用在每个 [ 或 { 之前带有键的 JSON 页面来执行此操作,但在解析以下类型的页面时遇到问题

[        {"id":12345,"name":"name1","account_id":10002000015631,
"start_at":"2015-09-02T20:24:13","enrollments":
[{"type":"student","role":"enrollment","role_id":821,
"user_id":10000001736511,"enrollment_state":"active"}],"hide_final_grades":false,
"workflow_state":"available","restrict_enrollments_to_course_dates":false},
{"id":100000055661076,"name":"name2","account_id":100000230095635,
"start_at":"2015-08-28T21:22:41Z","grading_standard_id":null,"is_public":null,
"course_code":"name2","default_view":"wiki","enrollment_term_id":10003000007529,"end_at":null,
"public_syllabus":false,"storage_quota_mb":500,"is_public_to_auth_users":false,
"apply_assignment_group_weights":false,"calendar":{"ics":"https://someurl.ics"},
"enrollments":[{"type":"student","role":"StudentEnrollment","role_id":821,
"user_id":10000001736511,"enrollment_state":"active"}],"hide_final_grades":false,"
workflow_state":"available","restrict_enrollments_to_course_dates":false}
]

例如,对于这个网页http://www.raywenderlich.com/demos/weather_sample/weather.php?format=json我能够创建方法

- (NSDictionary *)currentCondition
{
NSDictionary *dict = self[@"data"];
NSArray *ar = dict[@"current_condition"];
return ar[0];
}

-(NSString*) cloudcover
{
return self[@"cloudcover"];
}

检索字符串@"16"。

如何使用类似的方法从我的第一个示例 JSON 代码中获取 @"name1"或 ID @"12345"?

最佳答案

你有一个字典数组。要获得输出数组,您可以使用以下方法:

- (NSMutableArray *)getValueString: (NSString*)string fromArray: (NSArray *)inputArray {
NSString *outputString;
NSMutableArray *outputArray = [NSMutableArray new];

for (id dict in inputArray) {
if ([[dict class] isSubclassOfClass:[NSDictionary class]]) {
outputString = [dict valueForKey: string];
}
else {
outputString = @"Name not found";
}

if (!(outputString.length > 0)) {
outputString = @"Name not found";
}

[outputArray addObject: outputString];
}

return outputArray;

并使用它来获取名称:

NSArray *resultArray = [self getValueString: @"name" fromArray: inputArray];
NSString *firstName = resultArray[0];

并通过以下方式获取 id:

NSArray *resultArray = [self getValueString: @"id" fromArray: inputArray];
NSString *firstId = resultArray[0];

关于ios - 使用 AFNetworking 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com