如何从类对象列表中构造一个 json 对象
Posted
技术标签:
【中文标题】如何从类对象列表中构造一个 json 对象【英文标题】:How to construct a json object from list of class objects 【发布时间】:2015-08-07 13:10:26 【问题描述】:我正在研究如何从类对象列表中构造或创建子对象。
我有一个 Category 类,看起来像:
class Category
var Code: Int?
var Label: String?
init(Code: Int, Label: String)
self.Code = Code
self.Label = Int
然后我有一个类别列表var categories = [Category]()
然后我像这样附加我的列表:
categories.append(5,"Shoes")
如何构造一个如下所示的 json 对象:
"List":[
"Code":"5",
"Label":"Shoes"
,
....
]
【问题讨论】:
考虑使用像 ObjectMapper 这样的外部框架,例如 github.com/Hearst-DD/ObjectMapper 我会推荐使用 swiftyJSON。 github.com/SwiftyJSON/SwiftyJSON 【参考方案1】:步骤 1
首先我们更新您的Category
课程。
class Category
var code: Int // this is no longer optional
var label: String // this neither
init(code: Int, label: String)
self.code = code
self.label = label
var asDictionary : [String:AnyObject]
return ["Code": code, "Label": label]
第二步
现在我们创建一个类别列表
var categories = [
Category(code: 0, label: "zero"),
Category(code: 1, label: "one"),
Category(code: 2, label: "two")
]
然后我们将它们转换成字典列表
let list = categories.map $0.asDictionary
最后让我们创建 json
let json = ["List":list]
看起来有效
NSJSONSerialization.isValidJSONObject(json) // true
希望这会有所帮助。
【讨论】:
但是怎么转成JSON呢,变量JSON还是一个列表 不,变量json
是一个字典 [String:AnyObject],它确实代表一个 JSON。您期望什么类型的对象?
我想要一个可以在 post 请求中发送的 json 对象
您可以使用 NSJSONSerialization.JSONObjectWithData 将 Dictionary 转换为 NSData,如此处所述***.com/questions/27654550/…。然后你可以执行一个 POST 请求。以上是关于如何从类对象列表中构造一个 json 对象的主要内容,如果未能解决你的问题,请参考以下文章