我有一个使用基于JSON的API的应用程序。作为JSON的一部分,通常将值设置为“ null”。这可能很常见:
{"data":["one","two","three"],"name":null,otherstuff:10}
最近,我尝试在NSUserDefaults中存储从JSON对象转换的杂项NSDictionary层次结构。不幸的是,如果有空数据,它将在IOS中转换为[NSNull null]时引发异常。显然,这不能保存在首选项中。
我想知道以前是否有人为此工作过?我尝试添加一些逻辑以首先从JSON中删除所有空值,但成功率有限,但是似乎不建议在存储数据之前先对其进行修改。有没有更好的方法来解决这个问题?
我已经尝试了一些递归解决方案,但是它们往往很复杂并且不能很好地处理混合类型的内容。在最简单的层次上,这里是一个简单的示例,如果您对清洁有一个可预测的,平坦的响应,则该示例很好用。
NSMutableDictionary *dictMutable = [dict mutableCopy]; [dictMutable removeObjectsForKeys:[dict allKeysForObject:[NSNull null]]];