SwiftyJson 是否能够将自定义 swift class 转换为 json 字符串?
Is SwiftyJson capable of converting a custom swift class to a json string?
下面给出的是我的习惯 swift class。我的问题是如何使用 SwiftyJson 将此 class 的对象转换为 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);
更新
OP 现在对 EVReflection 很满意。所以我认为在这个时候它是最好的选择。
原始答案
由于 Swift 反射的可能性还没有那么丰富,所以现在没有像 google-gson for Java 这样的最终解决方案。
像 SwiftJSON and Swift ObjectMapper 这样的库只是加糖 NSJSONSerialization
并且需要您定义从 json 字段到对象属性的映射。
但情况正在发生变化,您可以尝试一下 JsonSerializerSwift。我还没有使用过它,但它使用 Swift 反射并且似乎工作正常。
另请查看 Swift Mirrors and JSON by Chris Eidhof 文章。它解释了 JSON 使用反射可能性的序列化是如何工作的。
可能这会有所帮助:https://github.com/PonyCui/PPJSONSerialization
你使用serialize来序列化PPJSON序列化类到JSON字符串或JSON数据,这是向服务器传递数据的完美方式。
在 Swift 4 中,现在内置了 Codable 框架。根据我的研究,对于那些可以升级到最新版本语言的人来说,这是最好的选择。
如果 属性 名称相同,调用 json 解码器只需几行,如果它们不同,您只需编写一个小的 switch 语句来映射它们。
我相信在接下来的几个月里会出现一个库来处理标准映射情况,但除此之外,开箱即用的东西看起来相当不错。
在这里查看:http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/
从 Swift4 开始,我们可以使用 JSONEncoder 本身将对象模型转换为 Json 字符串。
为此,如果 json 键是标准的,我们只需要使用 Codable 扩展对象。
参考:
下面给出的是我的习惯 swift class。我的问题是如何使用 SwiftyJson 将此 class 的对象转换为 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);
更新
OP 现在对 EVReflection 很满意。所以我认为在这个时候它是最好的选择。
原始答案
由于 Swift 反射的可能性还没有那么丰富,所以现在没有像 google-gson for Java 这样的最终解决方案。
像 SwiftJSON and Swift ObjectMapper 这样的库只是加糖 NSJSONSerialization
并且需要您定义从 json 字段到对象属性的映射。
但情况正在发生变化,您可以尝试一下 JsonSerializerSwift。我还没有使用过它,但它使用 Swift 反射并且似乎工作正常。
另请查看 Swift Mirrors and JSON by Chris Eidhof 文章。它解释了 JSON 使用反射可能性的序列化是如何工作的。
可能这会有所帮助:https://github.com/PonyCui/PPJSONSerialization
你使用serialize来序列化PPJSON序列化类到JSON字符串或JSON数据,这是向服务器传递数据的完美方式。
在 Swift 4 中,现在内置了 Codable 框架。根据我的研究,对于那些可以升级到最新版本语言的人来说,这是最好的选择。
如果 属性 名称相同,调用 json 解码器只需几行,如果它们不同,您只需编写一个小的 switch 语句来映射它们。
我相信在接下来的几个月里会出现一个库来处理标准映射情况,但除此之外,开箱即用的东西看起来相当不错。
在这里查看:http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/
从 Swift4 开始,我们可以使用 JSONEncoder 本身将对象模型转换为 Json 字符串。
为此,如果 json 键是标准的,我们只需要使用 Codable 扩展对象。
参考: