blog

SwiftyJSONを使ったHandyJSON

クラス HandyJSON,Codable {\n 必須 init { //カスタム...

May 6, 2020 · 2 min. read
シェア
class BaseModel: HandyJSON,Codable {
 required init() {}
 func mapping(mapper: HelpingMapper) { //カスタム解析ルール、日付番号の色、解析フォーマットを指定したい場合は、サブクラスの実装はこのメソッドをオーバーライドする。
 // mapper <<<
 // date <-- CustomDateFormatTransform(formatString: "yyyy-MM-dd")
 //
 // mapper <<<
 // decimal <-- NSDecimalNumberTransform()
 //
 // mapper <<<
 // url <-- URLTransform(shouldEncodeURLString: false)
 //
 // mapper <<<
 // data <-- DataTransform()
 //
 // mapper <<<
 // color <-- HexColorTransform()
 }
}

MODに必要な特定のjson

以下は、私のプロジェクトで使用されているコードです。 バックエンドはjsonを返します。

SwiftyJSONフレームワークと連携してモデルを変換

JSONから配列モデルへ

 func loadBannerData(position:String) {
 
 HttpRequest.loadData(target: PXSHomeAPI.banner(position: position), success: { (data) in
 let json = JSON(data)
 if let imageArr = JSONDeserializer<ImageModel>.deserializeModelArrayFrom(json: json["data"]["result"].description) {
 self.updateDataBlock?()
 }) { (code, msg) in
 
 }
 
 }

JSON配列モデルへ

バックエンドのJSONデータ
> {
	"code": 200,
	"data": {
		"result": {
			"transfer_shop": "2124", //オンラインからショップへ
			"transfer_success": 1788, //ショップへの変換に成功した
			"find_shop": 0 //ショップファインダーの成功
		}
	},
	"msg": "SUCCESS"
}
 func loadCountData() {
 HttpRequest.loadData(target: PXSHomeAPI.statistics, success: { (res) in
 let json = JSON(res)
 
 if let model = JSONDeserializer<PXSHomeCountModel>.deserializeFrom(json: json.description, designatedPath: "data.result") {
 self.countModel = model
 self.updateDataBlock?()
 }
 }) { (code, message) in
 
 }
 }
Read next

ESLintルールの説明

//\n = {\n // ES6の解析\n 'parser': 'babel-eslint'、\n '': {\n // ES を有効化

May 6, 2020 · 16 min read