1

我已经到处寻找答案,我相信这很简单,可能只是我在看了这么久之后被困在一个角落里!希望有人可以提供帮助。抱歉,我是 Objective-C/iOS 的新手。

我只想能够从我的 Web 服务获得 JSON 响应并将所有键和值保存到 plist 文件中。如果我指定每个对象和键,我知道如何执行此操作,但我不想知道每个键和对象,我只想将它们全部保存。无论 JSON 结果给我什么。

来自我的 Web 服务的 JSON 响应示例:

{"result":[{"k_templateid":"2","tem_global":"1","tem_name":"iPad Template"}]}

我希望能够在网站上添加新的数据库字段和值,而无需每次都更新应用程序,如果我指定了每个对象和键,这就是我现在需要做的。

我之前在指定键和对象方面所做的示例:

NSMutableDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];

NSMutableDictionary *things = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                                         [res objectForKey:@"k_templateid"], @"k_templateid",
                                                         [res objectForKey:@"tem_global"], @"tem_global",
                                                         [res objectForKey:@"tem_name"], @"tem_name",
                                                         nil];
[things writeToFile:path atomically:YES];

希望这是有道理的。这可能已经在其他地方得到了回答,但可能在我的搜索中使用了错误的术语,我提前道歉。谢谢你的帮助。

编辑:很抱歉不包括 JSON 部分。我还在使用 AFNetworking for JSON,而不是 Apple 的 JSON 方法。JSON 被调用:

[[API sharedInstance] commandWithParams:params
                           onCompletion:^(NSDictionary *json) {
4

3 回答 3

2

您使用 JSONObjectWithData:options:error: 方法。这个网站上有很多关于这个的问题和答案,我不敢相信你没有找到它们。

NSMutableDictionary* res = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

这会将 JSON 数据转换为 NSDictionary(或数组,如果这是您的 JSON 返回的内容)。

于 2012-12-12T04:32:55.477 回答
0

根据您的描述,我认为您只想这样做:

NSDictionary* result = [[json objectForKey:@"result"] objectAtIndex:0];

[result writeToFile:path atomically:YES];
于 2012-12-12T04:23:41.337 回答
0

I found the problem. There are a couple of NULL values in my JSON response which of course can't be written to a plist file. So i'll either get those NULL values removed at the web service side or with some code in Objective-C. Thanks for your help.

于 2012-12-13T00:24:36.337 回答