加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift将struct转化为json

发布时间:2020-12-14 06:42:01 所属栏目:百科 来源:网络整理
导读:struct Car: JSONSerializable { var manufacturer: String var model: String var mileage: Float var owner: Owner } struct Owner: JSONSerializable { var name: String } let car = Car(manufacturer: "Tesla",model: "Model T",mileage: 1234.56,owner









struct Car: JSONSerializable {
var manufacturer: String
var model: String
var mileage: Float

var owner: Owner
}

struct Owner: JSONSerializable {
var name: String
}



let car = Car(manufacturer: "Tesla",model: "Model T",mileage: 1234.56,owner: Owner(name: "Emil"))

if let json = car.toJSON() {
print(json)

}



// // JSONSerializable.swift // Longsheng // // Created by 关洪昌 on 16/9/30. // Copyright ? 2016年 夸克时代. All rights reserved. // protocol JSONRepresentable { var JSONRepresentation: AnyObject { get } } protocol JSONSerializable: JSONRepresentable { } extension JSONSerializable { var JSONRepresentation: AnyObject { var representation = [String: AnyObject]() for case let (label?,value) in Mirror(reflecting: self).children { switch value { case let value as JSONRepresentable: representation[label] = value.JSONRepresentation case let value as NSObject: representation[label] = value default: // Ignore any unserializable properties break } } return representation as AnyObject } } extension JSONSerializable { func toJSON() -> String? { let representation = JSONRepresentation guard JSONSerialization.isValidJSONObject(representation) else { return nil } do { let data = try JSONSerialization.data(withJSONObject: representation,options: []) return String(data: data,encoding: String.Encoding.utf8) } catch { return nil } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读