objective-c - 如何使用 JSONModel 将 NSArray 序列化为 JSON

标签 objective-c nsarray jsonmodel

奇怪的是,似乎没有任何公共(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/

相关文章:

ios - 在 UIView 中绘制圆框 :drawRect, 在旋转/调整大小后倾斜

objective-c - 在NSArray中增加NSNumber

iOS - 将 IFNULL(...) JSON 键转换为对象属性

ios - NSArray 信号传输

swift - 在 Swift 中使用 JSONModel 解析自定义模型数组

objective-c - 在 Objective-C 中除以零

java - bash 脚本错误 "exit code 126"

objective-c - 如何从应用程序 B 访问应用程序 A 的功能

cocoa - NSarray 发布