LiplisDevDiary/2015-05-13
Last-modified:
SwiftでJsonを扱う
LiplisAPIの結果セットはJsonで返すようになっています。
これをSwiftでも正しく読み取れなければなりません。
SwiftでJsonを扱うために、「SwiftyJson」というライブラリを使いました。
以下の記事が参考になりました。
http://dev.classmethod.jp/smartphone/iphone/swiftyjson/
以下のソースを抜粋
https://github.com/LipliStyle/Liplis-iOS/blob/master/Liplis/LiplisShortNewsListJpJson.swift
ショートニュースの取得は、以下のような感じで行っています。
/** ショートニュースのJSON変換取得 */ static func json2MsgShortNews(json:JSON)->MsgShortNews { var result : MsgShortNews = MsgShortNews() //URL取得 if json["url"].string != nil { result.url = json["url"].string! } else { result.url = "" } if json["result"].string != nil { //リザルト取得(コロン分割) var resList : Array<String> = split(json["result"].string!,{$0 == ";"}) var title : String = "" //リーフエモーション分割 for leafAndEmotion : String in resList { //コンマ分割 var leaf : Array<String> = split(leafAndEmotion,{$0 == ","}) //リスト作成 //配列チェック if leaf.count == 3 { if(leaf[0] == "EOS") { break } result.nameList.append(leaf[0]) result.emotionList.append(leaf[1].toInt()!) result.pointList.append(leaf[2].toInt()!) //タイトル作成 title = title + leaf[0] } } //作成したタイトルをメッセージにセット result.title = title } else { result.title = "" result.nameList = [] result.emotionList = [] result.pointList = [] } //読み込み完了 result.flgSuccess = true return result }
ひっそりとgitにソースを公開・・・。
今リファクタリング中です。
アプリが公開されたら、正式に公開としようと思っています。
既に見える状態で、正式も何もないですが・・・。