【发布时间】:2016-03-25 10:39:20
【问题描述】:
我收到以下 JSON 响应,用于在核心数据中保存用户偏好。
preferences={
1={
children=({
3=Samsung;4=Nokia;
});id=1;name=Mobiles;
};2={
children=({
5="Samsung Curve TV";
});id=2;name=Electronics;
};
};
这是我的代码 sn-p 工作正常。但我认为这是非常冗长的代码。
NSLog(@"Preferences: %@", [response objectForKey:@"preferences"]);
for (NSDictionary *dic in [response objectForKey:@"preferences"]) {
NSLog(@"ID: %@", [[[response objectForKey:@"preferences"] objectForKey:dic] objectForKey:@"id"]);
NSLog(@"NAME: %@", [[[response objectForKey:@"preferences"] objectForKey:dic] objectForKey:@"name"]);
NSLog(@"Children DIC: %@", [[[[[response objectForKey:@"preferences"]
objectForKey:dic] objectForKey:@"children"] objectAtIndex:0] objectForKey:@"3"]);
for (NSDictionary *childDic in [[[[response objectForKey:@"preferences"]
objectForKey:dic] objectForKey:@"children"] objectAtIndex:0]) {
NSLog(@"Child Name: %@", [[[[[response objectForKey:@"preferences"]
objectForKey:dic] objectForKey:@"children"] objectAtIndex:0] objectForKey:childDic]);
}
}
我有 3 个问题。
如何改进我的代码 sn-p?有没有更短的方法来实现这个?
这个 JSON 响应是否足以用于移动端解析?它是好的 JSON 格式吗?作为移动开发人员,在使用 Core 数据方面,我们是否应该遵循任何 JSON 响应格式(这只是将 DB 实现减少为最佳实践)?
如何从 Objective-c 再次构造这样的 JSON 字符串?
【问题讨论】:
-
了解其他人的表现,第三方例如github.com/icanzilb/JSONModel
-
你的问题有答案。
-
@Injectios 你有什么建议,我可以将上面的 JSON 响应转换为 JSONModel 吗?我知道 JSONModel 但我不知道这个响应如何与它兼容?
-
@user3182143 对不起,我没有找到你?您能否建议显示标准 JSON 格式的适当且可靠的来源,因为我认为这不是好的 JSON 响应格式。
-
是的,您可以使用 JSONModel 转换任何类型的响应和嵌套元素,您需要注意的只有一件事是映射键(我会尝试编写示例)
标签: ios json web-services parsing