swift Model by ObjectMapper
3795 ワード
前言
ObjectMapperは、Swfit言語に基づいてJSONとModel間の相互回転を実現するサードパーティのオープンソースクラスライブラリgit転送ゲートです.https://github.com/Hearst-DD/ObjectMapper
ps:使用するたびにObjectMapperのモデルを手動で生成してdecode JSONデータを作成する必要があり、面倒なので、自分で簡単なmodel code印刷ツール類を書きました
JSON model print helper
ModelPrint_という名前を生成Zのツールクラスは、このツールの使用手順tipを含む
Model code印刷の呼び出し
生成されたモデルの例,モデル生成はObjectMapperによるモデルルールである.
ObjectMapper使用手順
1、ObjectMapperでmodel 2を生成し、ObjectMapperを呼び出すdecodeメソッドを以下のようにすればよい.
まとめ
初めてこの印刷方式を使ってモデルを生成するのを助けて、もし学生たちがもっと良い方法でモデルを生成するならば、一緒に交流することを歓迎します:p
ObjectMapperは、Swfit言語に基づいてJSONとModel間の相互回転を実現するサードパーティのオープンソースクラスライブラリgit転送ゲートです.https://github.com/Hearst-DD/ObjectMapper
ps:使用するたびにObjectMapperのモデルを手動で生成してdecode JSONデータを作成する必要があり、面倒なので、自分で簡単なmodel code印刷ツール類を書きました
JSON model print helper
ModelPrint_という名前を生成Zのツールクラスは、このツールの使用手順tipを含む
import UIKit
// tip:
//1、 swift , SwiftModelName
//2、 , ModelPrint_Z.PrintByString(dict_str: jsonString, name: "SwiftModelName")
//3、run the project, model
//4、copy
//5、parse SwiftModelName model ( model )
class ModelPrint_Z{
//dict_str model json string
//name model
static func PrintByString(dict_str:NSString,name:NSString){
let dict=self.dictionaryWithJosnString(jsonString: dict_str)
if (dict != nil) {
print("
import UIKit
import ObjectMapper
")
self.Print(dict: dict!, name: name)
}else{
print("error:json !")
}
}
//dict json
//name model
static func Print(dict:NSDictionary,name:NSString){
//model code string
var var_str:String=""
var var_mapping:String=""
dict.enumerateKeysAndObjects({ (key, obj, stop) in
let key_str=key as! String
var_mapping.append("
"+key_str+" 0{
self.Print(dict: arr[0] as! NSDictionary,name: (name as String)+"List" as NSString)
}
default:
var_str.append("
var "+key_str+" : "+"Any?")
}
})
var_str="class "+(name as String)+": Mappable {
"+var_str+"
public required init?(map: Map) {
mapping(map: map)
}"
var_mapping="
func mapping(map: Map) {"+var_mapping+"
}
}"
//model code str
print("
"+var_str+"
"+var_mapping)
}
//
//string dictionaryWithJosnString
static func dictionaryWithJosnString(jsonString:NSString)->NSDictionary?{
let jsonData:Data=jsonString.data(using: String.Encoding.utf8.rawValue)!
if jsonData.isEmpty {
return nil
}else{
do {
let jsonResult = try JSONSerialization.jsonObject(with: jsonData, options:
JSONSerialization.ReadingOptions.mutableContainers)
return jsonResult as? NSDictionary
} catch {
return nil
}
}
}
}
Model code印刷の呼び出し
import ObjectMapper
//model
ModelPrint_Z.PrintByString(dict_str: JSONStr name: "AdModel")
// Mapper model
let temperature = Mapper().map(JSONString: JSONStr as String)
生成されたモデルの例,モデル生成はObjectMapperによるモデルルールである.
import UIKit
import ObjectMapper
class AdModelList: Mappable {
var relation_id : Int?
var id : Int?
var image_url : String?
var title : String?
var link_url : String?
var relation_type : Int?
var relative_url : String?
public required init?(map: Map) {
mapping(map: map)
}
func mapping(map: Map) {
relation_id
ObjectMapper使用手順
1、ObjectMapperでmodel 2を生成し、ObjectMapperを呼び出すdecodeメソッドを以下のようにすればよい.
let temperature = Mapper().map(JSONString: JSONStr as String)
まとめ
初めてこの印刷方式を使ってモデルを生成するのを助けて、もし学生たちがもっと良い方法でモデルを生成するならば、一緒に交流することを歓迎します:p