奇怪的是,似乎没有任何公共(public)方法来序列化一个数组,但它显然可以在序列化一个数组属性时做到这一点。我有一个带有数组属性的 JSONModel 继承类。我只想获取该属性的 JSON 文本表示,而不是整个对象。
我不介意修改源代码,但如果能抢先知道在哪里查看,我们将不胜感激。
另一个想法是将每个对象单独序列化为 JSON 并将它们包装在 [
,]
中。
最佳答案
解释:
JSONModel 模型表示一个 JSON 对象 - 它将 JSON 键与模型类的属性相匹配。这就是为什么您不能直接创建 JSONModel 类来匹配顶部对象为数组的 JSON 提要的原因。例如:
[obj1, obj2, obj3, etc ...]
只是没有与属性匹配的键。
现在你问的是同样的情况,只是反过来了。您不能将 NSArray 导出到 JSON,因为没有 JSONModel 来处理它。如果您有一个具有一个属性的模型,即 NSArray - 那么这很容易。该属性将映射到 1 个 JSON 键,NSArray 内容将作为其内容导出。
解决方案:
如果你有一个包含 JSONModel 实例的 NSArray,你应该使用下面的方法:
NSArray* jsonObjects = [YourModelClass arrayOfDictionariesFromModels: modelObjects];
上面的行将注意将模型类正确导出到字典,然后您可以使用 NSJSONSerialization 将 jsonObjects 导出到 JSON。 .
这是方法的文档:
http://www.jsonmodel.com/docs/Classes/JSONModel.html#//api/name/arrayOfDictionariesFromModels:
关于objective-c - 如何使用 JSONModel 将 NSArray 序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219766/