日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

AlamofireJsonToObjects+EVReflection:一步解决JSON解析

發布時間:2025/4/16 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AlamofireJsonToObjects+EVReflection:一步解决JSON解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇文章中我們介紹了使用EVReflection解析JSON的方法,但是還是用到了SwiftyJSON這樣的工具,那么有木有什么辦法能夠更簡單的解決這樣的問題EVReflection的作者還為我們提供了AlamofireJsonToObjects這樣一個工具,讓我們能夠更加容易的處理JSON數據

AlamofireJsonToObjects 基于目前使用最廣泛的Swift HTTP庫Alamofire和我們上次提到的
EVReflection

第三方庫導入

我們通過CocoaPods導入

use_frameworks! pod "AlamofireJsonToObjects"

在用到到Swift文件中import AlamofireJsonToObjects

Demo

作為EVReflection的一個配套工具,它的使用非常簡單,我們通過一個Demo一起來學習一下

構建數據模型

根據我們上次寫出的數據模型,我們寫出整個response的數據模型

import Foundation import EVReflection class CityModel:EVObject{var city_name = ""var city_pinyin = ""var short_name = ""var short_pinyin = ""var city_id = 100010000 }

如下

class CityModelApiResponse:EVObject{var cities = [CityModel]()var errno = 0;var msg = ""; }

發起網絡請求

在我們的文件中import AlamofireJsonToObjects
我們這次先對Alamofire的網絡請求做一些封裝,我們這里使用了泛型以保證通用性
這里不再responseJSON而是responseObject

class func invokeObject< T: EVObject >(url:String,parameters:[String: AnyObject]? = nil,complete:(object: T?, error: NSError?) -> Void){Alamofire.request(.GET, ServiceEndpointBase, parameters: nil, encoding: .URL, headers: ["apikey":"ownAPIKey"]).validate(statusCode: 200..<300).responseObject { (URLRequest:NSURLRequest?, HTTPURLResponse:NSHTTPURLResponse?, result:Result< T, NSError>) incomplete(object: result.value, error: result.error)} }

接下來我們寫具體的涉及業務的請求方法

class func getCityListObject(complete:(object: CityModelApiResponse?, error: NSError?) -> Void){invokeObject(ServiceEndpointBase,parameters: nil,complete: complete) }

調用方法及結果

我們在viewDidLoad方法中調用一下我們的網絡請求方法

ServiceProxy.getCityListObject { (object, error) inprint(object!)}

控制臺結果如下

CityModelApiResponse {hash = 5326178534503437261key = cities, value = ({"city_id" = 100010000;"city_name" = "\U5317\U4eac\U5e02";"city_pinyin" = beijing;"short_name" = "\U5317\U4eac";"short_pinyin" = bj;},{"city_id" = 500010000;"city_name" = "\U5929\U6d25\U5e02";"city_pinyin" = tianjin;"short_name" = "\U5929\U6d25";"short_pinyin" = tj;},{"city_id" = 1800010000;"city_name" = "\U77f3\U5bb6\U5e84\U5e02";"city_pinyin" = shijiazhuang;"short_name" = "\U77f3\U5bb6\U5e84";"short_pinyin" = sjz;},{"city_id" = 1800020000;"city_name" = "\U5510\U5c71\U5e02";"city_pinyin" = tangshan;"short_name" = "\U5510\U5c71";"short_pinyin" = ts;}... )key = errno, value = 0key = msg, value = success }

AlamofireJsonToObjects不僅提供了responseObject還有responseArray,可以直接導出數組

總結

以上是生活随笔為你收集整理的AlamofireJsonToObjects+EVReflection:一步解决JSON解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。