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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

解析json数据_Retrofit同时解析JSON和XML数据格式

發(fā)布時(shí)間:2025/3/11 asp.net 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解析json数据_Retrofit同时解析JSON和XML数据格式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

Android開(kāi)發(fā)中,我們會(huì)經(jīng)常遇到前端需要解析兩種數(shù)據(jù)格式(json和xml),比如自己服務(wù)器返回的是json格式的數(shù)據(jù),我們做微信登錄的時(shí)候,微信返回的格式又是xml格式的。我們可以通過(guò)自己編寫(xiě)Retrofit的ConverterFactory來(lái)做到可以同時(shí)解析兩種數(shù)據(jù)格式。

代碼

1.一般我們實(shí)例化retrofit實(shí)例的時(shí)候,都會(huì)傳入GsonConverterFactory,如果我們需要同時(shí)解析兩種格式,我們需要重寫(xiě)Converter.Factory()類

2.引入依賴包:

com.squareup.retrofit2:converter-simplexml是retrofit幫我們解析xml的依賴

implementation 'com.squareup.retrofit2:retrofit:2.6.0' implementation 'com.squareup.retrofit2:converter-gson:2.4.0' implementation 'com.squareup.retrofit2:converter-simplexml:2.4.0'? ?

3.重寫(xiě)Converter.Factory()類,在responseBodyConverter方法中,判斷到底是那種數(shù)據(jù)格式然后對(duì)應(yīng)解析。

class JsonOrXmlConverterFactory : Converter.Factory() { private val xmlFactory:Converter.Factory by lazy { SimpleXmlConverterFactory.create() } private val jsonFactory: Converter.Factory by lazy { GsonConverterFactory.create() } companion object { fun create():JsonOrXmlConverterFactory { return JsonOrXmlConverterFactory() } } override fun requestBodyConverter( type: Type, parameterAnnotations: Array, methodAnnotations: Array, retrofit: Retrofit ): Converter? { return super.requestBodyConverter(type, parameterAnnotations, methodAnnotations, retrofit) } override fun responseBodyConverter( type: Type, annotations: Array, retrofit: Retrofit ): Converter? { for(annotation in annotations) { if(annotation !is ResponseFormat) { continue } val value = annotation.value if (ResponseFormat.JSON == value) { return jsonFactory.responseBodyConverter(type, annotations, retrofit) } else if (ResponseFormat.XML == value) { return xmlFactory.responseBodyConverter(type, annotations, retrofit) } } return null }}? ? ? ?

4.添加ResponseFormat注解,需要在HttpService中告訴請(qǐng)求到底返回的是xml還是json:

@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)@Retention(AnnotationRetention.RUNTIME)annotation class ResponseFormat(val value: String = "json") { companion object { const val JSON = "json" const val XML = "xml" }}

5.Httpservice注解添加:

(1)當(dāng)服務(wù)端返回格式為json時(shí),ResponseFormat不需要添加參數(shù),默認(rèn)為json:

@ResponseFormat @FormUrlEncoded @POST("v1/user/getUser2") suspend fun getUser(@Field("openid") openid: String) : ReponseServer? ? ?

(2)當(dāng)服務(wù)器返回xml時(shí),@ResponseFormat(value = ResponseFormat.XML)添加參數(shù)。告訴JsonOrXmlConverterFactory此時(shí)需要解析xml。

@ResponseFormat(value = ResponseFormat.XML) @POST("unifiedorder") suspend fun wxPrePay(@Body route:RequestBody) : WXPayReponse @ResponseFormat(value = ResponseFormat.XML) @POST("orderquery") suspend fun wxPayOrderQuery(@Body route: RequestBody) : WXOrderReponse? ??

總結(jié):

到此我們可以通過(guò)Retrofit解析json和xml格式,如果大家有疑問(wèn)或者不足之處,可以在下方評(píng)論留言。

總結(jié)

以上是生活随笔為你收集整理的解析json数据_Retrofit同时解析JSON和XML数据格式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人精品在线看 | 91精品国产综合久久福利软件 | 午夜亚洲AV永久无码精品蜜芽 | 丰满少妇在线观看bd | 顶级尤物极品女神福利视频 | 一区二区三区免费网站 | 色婷婷视频 | 农村偷人一级超爽毛片 | 国产精品天天操 | 国产老熟女一区二区三区 | 青青草原国产在线观看 | 好看的中文字幕 | 人人插人人澡 | 免费av一级 | 美女久久久久 | 欧美久久久久久又粗又大 | 亚洲毛片在线免费观看 | 免费黄色在线播放 | 91网站在线免费看 | 男女互操在线观看 | 久草视频精品 | 九九在线免费视频 | 一级黄色免费看 | 欧美精品日韩 | 免费av入口 | 伊人亚洲精品 | 自拍偷拍日韩精品 | 国产精品美女www爽爽爽 | 黄色一区二区三区四区 | 日本一级网站 | 超碰伊人网| 午夜国产精品视频 | 欧美久久久久久久久久久久 | 免费看女生裸体视频 | 国产欧美成人 | 美女被草网站 | 国产视频久久久久久 | 国产精品自拍亚洲 | 漂亮人妻洗澡被公强 日日躁 | 亚洲美女黄色 | 亚洲色图狠狠干 | 国产21区 | 丁香激情综合 | 亚洲av无码一区二区三区四区 | 性色av一区| 欧美黑人一区二区三区 | 国产精品一区二区毛片 | 在线免费观看中文字幕 | 免费拍拍拍网站 | 波多野结衣大片 | 久久精品国产大片免费观看 | 小泽玛利亚一区二区三区在线观看 | 国产精品一区二区无码对白 | 麻豆精品在线视频 | 少妇 av| 日本精品一区二区三区四区 | 激情婷婷小说 | 日本一区二区久久 | 寂寞d奶大胸少妇 | 扒下小娇妻的内裤打屁股 | 一级片欧美 | 在线视频观看免费 | 国产综合自拍 | 老熟女一区二区三区 | 日韩福利一区二区 | 中日韩精品视频在线观看 | 日本综合久久 | 免费国产一级 | 91成年版 | 最新三级网站 | 日本三级视频在线观看 | 9l视频自拍蝌蚪9l视频成人 | 欧美日韩精品一区二区三区视频播放 | 91网站免费在线观看 | 在线视频观看国产 | 国产激情一区二区三区四区 | 在线va| 日本一区二区三区视频免费看 | 97日韩精品 | 美女被草视频在线观看 | 乳罩脱了喂男人吃奶视频 | 中文字幕人成乱码熟女香港 | av大片在线播放 | 天天综合天天综合 | 精国产人伦一区二区三区 | 日韩女优中文字幕 | 天天操天天干视频 | 91在线精品秘密一区二区 | 黄色视屏软件 | 久久精品亚洲精品国产欧美 | 一区二区伦理片 | 九九色综合网 | 日本在线视频www | 国产主播福利在线 | 日韩国产第一页 | 在线观看免费观看 | 另类老妇性bbwbbw图片 | 亚洲欧美日韩网站 | 亚洲色图第1页 |