繁体   English   中英

SwiftyJson能够将自定义swift类转换为json字符串吗?

[英]Is SwiftyJson capable of converting a custom swift class to a json string?

以下是我的自定义swift类。 我的问题是如何使用SwiftyJson将此类的对象转换为json字符串?

class Equipment{

    var UniqueItemId:String? = ""
    var ItemNo:String? = ""
    var EquipmentType:String? = ""
    var EquipmentDescription:String? = ""
    var Length:String? = ""
    var Wll:String? = ""
    var  EquipmentLocation:String? = ""
    var EquipmentManufacture:String? = ""
    var SerialNo:String? = ""
    var Condition:String? = ""
    var Remarks:String? = ""
    var InspectionDate:String? = ""
    var Inspector:String? = ""

}

例如,像这样:

var jsonString = JSON(equipmentObject);

UPDATE

OP现在对EVReflection感到满意 所以我认为在这一刻它是最好的选择。

原始答案

由于Swift反射的可能性还不是很丰富,所以现在没有像google-gson for Java那样的终极解决方案。

SwiftJSONSwift ObjectMapper这样的库只是加糖NSJSONSerialization并要求您定义从json字段到对象属性的映射。

但事情正在改变,你可以尝试JsonSerializerSwift 我还没有使用它,但它使用Swift反射,似乎工作正常。

还可以看看Chris Eidhof撰写的Swift Mirrors和JSON文章。 它解释了如何使用反射可能性的JSON序列化。

可能会有所帮助: https//github.com/PonyCui/PPJSONSerialization

您使用序列化将PPJSONSerialization类序列化为JSON String或JSON Data,这是向服务器提供数据的完美方式。

在Swift 4中,现在已经出现了Codable框架。从我的研究中,对于那些可以升级到最新版本语言的人来说,这是最好的选择。

如果属性名称相同,那么调用json解码器只需几行,如果它们不同,则只需要编写一个小的switch语句来映射它们。

我相信在接下来的几个月里会出现一个图书馆来处理标准的映射情况,但除此之外,开箱即用的东西看起来还不错。

在这里查看: http//benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/

从Swift4我们可以使用JSONEncoder本身将Object模型转换为Json String。

为此,如果json键是标准的,我们只需要使用Codable扩展Object。

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM