内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

STTP中如何進(jìn)行Json的基本使用分析

這篇文章將為大家詳細(xì)講解有關(guān)STTP中如何進(jìn)行Json的基本使用分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)建站云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、中國(guó)電信云錦天府、云服務(wù)器、網(wǎng)站空間、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)站空間、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

1)對(duì) Json 的支持

對(duì) request,response 消息體中 JSON 的支持一般就是要做兩件事:一是定義 josn 的格式規(guī)范,另外就是根據(jù)格式規(guī)范進(jìn)行序列化、反序列化。STTP 提供開箱即用的對(duì)第三方JOSN庫(kù)的支持:包括Circe、Json4s、spray-json 等。

目前,從項(xiàng)目活躍度、維護(hù)程度上講Circe應(yīng)該是不錯(cuò)的選擇。(https://scala.libhunt.com/compare-circe-vs-spray-json)

2)Circe

Circe竟然是基于挑戰(zhàn)智商的 CAT 實(shí)現(xiàn)的!

Circe使用 Encoder、Decoder 編解碼Json。Encoder[A]把 A 轉(zhuǎn)為 Json,Decoder[A]則把Json轉(zhuǎn)為A或者Exception(如果失敗話)。Circe對(duì)Scala庫(kù)中常見類型就提供了默認(rèn)的隱式實(shí)例。

對(duì)于簡(jiǎn)單結(jié)構(gòu)的 case class,使用 Circe 提供的自動(dòng)、半自動(dòng)的編解碼就好。Circe 當(dāng)然也支持自定義轉(zhuǎn)換或?qū)?ADT 類型數(shù)據(jù)轉(zhuǎn)換。智商夠用可以去看https://github.com/milessabin/shapeless。

使用 circe-optics 模塊還可以對(duì) Json 數(shù)據(jù)進(jìn)行遍歷、修改。

比如,下面從 order 中獲取用戶的電話號(hào)碼。

val phoneNum = root.order.customer.contactDetails.phone.string

如下是調(diào)用 NASA某Api并解析Response的代碼示例, 是不是太方便了?!

  import io.circe.generic.auto._  import sttp.client._  import sttp.client.circe._
 case class Links(self: String, next: String)  case class Page(number: Int, size: Int, total_elements: Int, total_pages: Int)  case class NearEarthObject(absolute_magnitude_h: Double, designation: String)  case class NasaData(links: Links, page: Page, near_earth_objects: List[NearEarthObject])
 implicit val backend = HttpURLConnectionBackend()  val resp = basicRequest    .get(uri"https://api.nasa.gov/neo/rest/v1/neo/browse?api_key=${NASA_API_KEY}")    .response(asJson[NasaData])    .send()
 resp.body match {    case Left(failure) => println(failure)    case Right(data) => {          println("Get response from NAS Api:")          println(data)    }  }

關(guān)于STTP中如何進(jìn)行Json的基本使用分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站名稱:STTP中如何進(jìn)行Json的基本使用分析
網(wǎng)頁網(wǎng)址:http://m.rwnh.cn/article46/igjoeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、面包屑導(dǎo)航企業(yè)網(wǎng)站制作、Google網(wǎng)站改版、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
南岸区| 新闻| 万山特区| 镶黄旗| 昆山市| 石渠县| 成都市| 丹阳市| 宁南县| 永年县| 平顺县| 陇南市| 巩义市| 霞浦县| 藁城市| 彭州市| 永仁县| 阿荣旗| 福建省| 武强县| 新野县| 东平县| 松原市| 和平县| 兰西县| 拉孜县| 鄄城县| 遂溪县| 西和县| 怀柔区| 邹平县| 韶关市| 图木舒克市| 延吉市| 米脂县| 桑日县| 庐江县| 互助| 隆昌县| 金乡县| 烟台市|