最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang map如何生成有序的json數(shù)據(jù)詳解

 更新時(shí)間:2017年07月28日 08:24:01   作者:小談  
最近在學(xué)習(xí)Golang,發(fā)現(xiàn)了一個(gè)問(wèn)題,覺(jué)著有必要給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Golang map如何生成有序json數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。

前言

本文主要給大家介紹了關(guān)于Golang map生成有序json數(shù)據(jù)的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)一起看看詳細(xì)的介紹:

先來(lái)看一段 Golang 生成 json 的代碼,首先定義了一個(gè) map[string]interface{}  的變量,然后存一些值,這里要注意的是 previews 字段,為了瀏覽器獲取到的 json 數(shù)據(jù)是有序的,所以定義了一個(gè) map[int]map[string]string 的類(lèi)型,加上了一個(gè)表示順序的鍵:

list := make(map[string]interface{})
list["id"] = detail["id"]
list["game_name"] = detail["game_name"]
list["game_logo"] = detail["game_m_logo"]
gameTags, _ := utils.InterfaceToStr(detail["game_tags"])
list["game_tags"] = strings.Split(gameTags, ",")
list["game_desc"] = detail["game_long_desc"]
list["play_total_times"] = 33333
testImages := make(map[int]map[string]string)
testImages[1] = map[string]string{"video": "xxx"}
testImages[2] = map[string]string{"image": "yyy1"}
testImages[3] = map[string]string{"image": "yyy2"}
testImages[5] = map[string]string{"image": "yyy5"}
testImages[4] = map[string]string{"image": "yyy3"}
list["previews"] = testImages
 
fmt.Println("test list:", list)

但實(shí)際上,對(duì)于 Golang 來(lái)說(shuō),previews 字段并非因此就變成是有序的,通過(guò)打印就可以知道了,但是瀏覽器會(huì)自動(dòng)對(duì)帶有 int 型主鍵的 json 數(shù)據(jù)進(jìn)行排序,從而實(shí)現(xiàn)了目的。

生成的 json 格式數(shù)據(jù)如下,按照 int 從小到大排列了:

{
 "data": {
  "game_desc": "從秀才一路前進(jìn),你最終能官居幾品? 為了完成父親的遺愿,你走上了這條漫漫升官路。 最終你會(huì)成為什么樣的人? ",
  "game_logo": "http://image.egret.com/game/gameIcon/181/90681/icon_200.jpg?1472698847",
  "game_name": "官居幾品",
  "game_tags": [
   "呵呵"
  ],
  "id": "3",
  "play_total_times": 33333,
  "previews": {
   "1": {
    "video": "xxx"
   },
   "2": {
    "image": "yyy1"
   },
   "3": {
    "image": "yyy2"
   },
   "4": {
    "image": "yyy3"
   },
   "5": {
    "image": "yyy5"
   }
  }
 },
 "msg": "ok",
 "result": 0
}

這樣的話有個(gè)缺點(diǎn),本來(lái)可以輸出更為簡(jiǎn)潔的數(shù)據(jù)結(jié)構(gòu),但因?yàn)?map 的無(wú)序不得不加一個(gè)主鍵,讓前端解析增加了麻煩。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者使用Go語(yǔ)言能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:

相關(guān)文章

  • Go并發(fā)與鎖的兩種方式該如何提效詳解

    Go并發(fā)與鎖的兩種方式該如何提效詳解

    如果沒(méi)有鎖,在我們的項(xiàng)目中,可能會(huì)存在多個(gè)goroutine同時(shí)操作一個(gè)資源(臨界區(qū)),這種情況會(huì)發(fā)生競(jìng)態(tài)問(wèn)題(數(shù)據(jù)競(jìng)態(tài)),下面這篇文章主要給大家介紹了關(guān)于Go并發(fā)與鎖的兩種方式該如何提效的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Golang token的生成和解析詳解

    Golang token的生成和解析詳解

    這篇文章主要給大家介紹了Golang token的生成和解析,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 詳解Go語(yǔ)言如何解析帶注釋的json

    詳解Go語(yǔ)言如何解析帶注釋的json

    標(biāo)準(zhǔn)的json格式是不帶注釋?zhuān)怯袝r(shí)候?yàn)榱朔奖憷斫鈐son中各字段的含義,需要支持帶注釋的json,這篇文章主要介紹了Go語(yǔ)言解析帶注釋json的相關(guān)方法,希望對(duì)大家有所幫助
    2024-03-03
  • Golang如何交叉編譯各個(gè)平臺(tái)的二進(jìn)制文件詳解

    Golang如何交叉編譯各個(gè)平臺(tái)的二進(jìn)制文件詳解

    這篇文章主要給大家介紹了關(guān)于Golang如何交叉編譯各個(gè)平臺(tái)的二進(jìn)制文件的相關(guān)資料,并介紹了golang如何讓編譯生產(chǎn)的二進(jìn)制文件變小,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Go?tablewriter庫(kù)提升命令行輸出專(zhuān)業(yè)度實(shí)例詳解

    Go?tablewriter庫(kù)提升命令行輸出專(zhuān)業(yè)度實(shí)例詳解

    命令行工具大家都用過(guò),如果是運(yùn)維人員可能會(huì)編寫(xiě)命令行工具來(lái)完成各種任務(wù),命令行輸出的美觀和易讀性往往容易被忽視,很爛的輸出會(huì)讓人感覺(jué)不專(zhuān)業(yè),本文將介紹Go語(yǔ)言中牛逼的實(shí)戰(zhàn)工具tablewriter庫(kù),使你在命令行輸出中展現(xiàn)出專(zhuān)業(yè)的一面
    2023-11-11
  • Gin的中間件執(zhí)行流程與用法詳解

    Gin的中間件執(zhí)行流程與用法詳解

    我們?cè)谑褂肎in框架進(jìn)行Web開(kāi)發(fā)的時(shí)候,基本上都會(huì)遇到登錄攔截的場(chǎng)景,在Gin當(dāng)中,?中間件和業(yè)務(wù)處理函數(shù)都是一樣的類(lèi)型,都是一種函數(shù),本文給大家介紹了Gin的中間件執(zhí)行流程與用法,需要的朋友可以參考下
    2024-04-04
  • go local history本地歷史恢復(fù)代碼神器

    go local history本地歷史恢復(fù)代碼神器

    這篇文章主要為大家介紹了go local history本地歷史恢復(fù)代碼神器的使用功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Golang?Mutex互斥鎖源碼分析

    Golang?Mutex互斥鎖源碼分析

    本篇文章,我們將一起來(lái)探究下Golang?Mutex底層是如何實(shí)現(xiàn)的,知其然,更要知其所以然。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-10-10
  • Go語(yǔ)言學(xué)習(xí)之函數(shù)的定義與使用詳解

    Go語(yǔ)言學(xué)習(xí)之函數(shù)的定義與使用詳解

    這篇文章主要為大家詳細(xì)介紹Go語(yǔ)言中函數(shù)的定義與使用,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Go語(yǔ)言有一定幫助,需要的可以參考一下
    2022-04-04
  • 深入了解Go語(yǔ)言中的作用域和變量重聲明

    深入了解Go語(yǔ)言中的作用域和變量重聲明

    在?Go?語(yǔ)言中,代碼塊的嵌套和作用域是程序設(shè)計(jì)的關(guān)鍵概念之一,本文將探討如何在?Go?語(yǔ)言中利用代碼塊的嵌套和作用域來(lái)組織代碼,并介紹變量重聲明的規(guī)則,感興趣的可以了解下
    2023-11-11

最新評(píng)論

英吉沙县| 当雄县| 邵武市| 仁怀市| 奉贤区| 新营市| 古田县| 南岸区| 商河县| 泸溪县| 新余市| 永和县| 延寿县| 周至县| 通道| 桂林市| 商南县| 曲阜市| 嘉善县| 安新县| 新民市| 额尔古纳市| 福建省| 青阳县| 宜君县| 东乌珠穆沁旗| 武强县| 宝坻区| 巴塘县| 常州市| 新龙县| 伊通| 偃师市| 陆良县| 客服| 黄平县| 浦城县| 惠东县| 家居| 缙云县| 蚌埠市|