More Related Content
PDF
Himotoki: A type-safe JSON decoding library #関モバ PDF
PDF
PDF
iOSでのFramework導入のおさらい #関モバ PDF
Xcode and iTC submission topics PDF
PDF
Swift 1.2からSwift 2への移行 #cocoa_kansai PPTX
iOSでライブラリを提供する際に気をつけたいこと What's hot
PDF
Embedded framework and so on PDF
Apple watch対応アプリのポイントや基本実装・連携tips PDF
PPTX
PDF
高専カンファレンス in 岐阜 基調講演2 @gabu PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 - PDF
Swiftビギナーズ勉強会 第1回 @Co-Edo PDF
SwiftとReactNativeで似たようなUIを作った際の記録 PDF
Refrection of kawasaki.rb PDF
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた PPTX
PDF
PDF
[Excel]basic training03(3/5) PDF
Ruby and I at 神奈川Ruby会議01 PDF
[Excel]basic training05(5/5) PDF
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング PDF
Container view活用術とポイントになる部分 PDF
Swift事情2014夏 ~ Swift入門 beta6対応 PDF
PDF
Viewers also liked
PDF
PDF
PDF
var RAC3 = ReactiveCocoa + Swift PDF
PDF
PDF
PDF
PDF
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18 PDF
PDF
PDF
PDF
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」 PDF
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11 PDF
My client wanted their apps synced, and I made it with Go PDF
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから PDF
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術 PDF
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること PDF
Protocol-Oriented MVVM (extended edition) PDF
Coding in the context era PDF
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み Recently uploaded
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】 PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境 PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ... PDF
krsk_aws_re-growth_aws_devops_agent_20251211 PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研 ObjectMapperでJSONマッピング
- 1.
- 2.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
サンプルコード
class User: Mappable{
var username: String?
var age: Int?
var array: [AnyObject]?
var group: Gruop? // 別の`Mappable`な型
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
username <- map["username"]
age <- map["age"]
array <- map["array"]
group <- map["group"]
}
}
class Group: Mappable { ... }
- 15.
サンプルコード
let JSON: [String:AnyObject] = [
"username": "ikesyo",
"age": 28,
"array": [ 1, 2.0, "hoge", true ],
"group": [ ... ]
]
let mapper = Mapper<User>()
let user: User? = mapper.map(JSON)
let JSONFromUser: [String: AnyObject] = mapper.toJSON(user!)
- 16.
サンプルコード
let mapper =Mapper<User>()
let usersJSON: [[String: AnyObject]] = ... // ルート要素が配列のJSON
let users: [User] = mapper.mapArray(usersJSON)
let usersJSONDict: [String: [String: AnyObject]] = ...
let usersDict: [String: User] = mapper.mapDictionary(usersJSONDict)
- 17.
Transform
class WithTransform: Mappable{
var URL: NSURL?
var date: NSDate?
var intFromString: Int?
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
URL <- (map["url"], URLTransform())
date <- (map["date"], ISO8601DateTransform())
intFromString <- (map["int_from_string"], TransformOf<Int, String>(
fromJSON: { (JSONValue: String?) -> Int? in JSONValue?.toInt() },
toJSON: { (value: Int?) -> String? in value.map { String($0) } }))
}
}
- 18.
こんなやつも使えます。
struct Immutable: Mappable{
let prop1: String
let prop2: Bool
let prop3: Int
init?(_ map: Map) {
prop1 = map["prop1"].valueOrFail() // nilの場合は`T`型のダミー値をセット
prop2 = map["prop2"].valueOrFail()
prop3 = map["prop3"].valueOr(Int.min) // デフォルト値
// ダミー値がセットされていれば初期化失敗
if !map.isValid {
return nil
}
}
}
- 19.
こんなやつも使えます。
struct Immutable: Mappable{
...
mutating func mapping(map: Map) {
switch map.mappingType {
case .FromJSON:
if let x = Immutable(map) {
self = x
}
case .ToJSON:
var prop1 = self.prop1
var prop2 = self.prop2
var prop3 = self.prop3
prop1 <- map["prop1"]
prop2 <- map["prop2"]
prop3 <- map["prop3"]
}
}
}
- 20.
- 21.