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

Go語言JSON解析器gjson使用方法詳解

 更新時間:2022年12月06日 15:29:17   作者:go2coding  
這篇文章主要介紹了Go語言json解析框架與gjson,JSON?解析是我們不可避免的常見問題,在Go語言中,我們可以借助gjson庫來方便的進行json屬性的提取與解析,需要的朋友可以參考一下

gjson

GJSON 是一個Go包,它提供了一種從json文檔中獲取值的快速簡單的方法。它具有單行檢索、點符號路徑、迭代和解析 json 行等功能。

還可以查看SJSON以修改 json,以及JJ命令行工具。

本自述文件是如何使用 GJSON 的快速概述,有關(guān)更多信息,請查看GJSON 語法。

github 的地址在這里。

安裝

安裝gjson,使用的是go傳統(tǒng)的安裝方法:

go install github.com/tidwall/gjson@latest

在文件的目錄下執(zhí)行:

$ go get -u github.com/tidwall/gjson

這樣就在目錄下,可以使用gjson了。

使用

獲取相應(yīng)的數(shù)值。

獲取指定路徑的搜索 json。路徑采用點語法,例如“name.last”或“age”。當(dāng)找到該值時,它會立即返回。

package main
import "github.com/tidwall/gjson"
const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`
func main() {
	value := gjson.Get(json, "name.last")
	println(value.String())
}

這將打印:

Prichard

這個跟我們使用的傳統(tǒng)的json解析還有一點區(qū)別,gjson不僅幫我們解析了json的數(shù)據(jù),還幫我們建立了快速查找的通道。

路徑語法

路徑是由點分隔的一系列鍵。密鑰可能包含特殊的通配符“*”和“?”。要訪問數(shù)組值,請使用索引作為鍵。要獲取數(shù)組中的元素數(shù)量或訪問子路徑,請使用“#”字符。點和通配符可以用“\”轉(zhuǎn)義。

{
  "name": {"first": "Tom", "last": "Anderson"},
  "age":37,
  "children": ["Sara","Alex","Jack"],
  "fav.movie": "Deer Hunter",
  "friends": [
    {"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
    {"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
    {"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
  ]
}

"name.last"          >> "Anderson"
"age"                >> 37
"children"           >> ["Sara","Alex","Jack"]
"children.#"         >> 3
"children.1"         >> "Alex"
"child*.2"           >> "Jack"
"c?ildren.0"         >> "Sara"
"fav\.movie"         >> "Deer Hunter"
"friends.#.first"    >> ["Dale","Roger","Jane"]
"friends.1.last"     >> "Craig"

您還可以使用 查詢數(shù)組中的第一個匹配項#(…),或使用 查找所有匹配項#(…)#。查詢支持==, !=, <, <=, >,>= 比較運算符和簡單的模式匹配%(like) 和!% (not like) 運算符。

friends.#(last=="Murphy").first    >> "Dale"
friends.#(last=="Murphy")#.first   >> ["Dale","Jane"]
friends.#(age>45)#.last            >> ["Craig","Murphy"]
friends.#(first%"D*").last         >> "Murphy"
friends.#(first!%"D*").last        >> "Craig"
friends.#(nets.#(=="fb"))#.first   >> ["Dale","Roger"]

這樣我們查找起來就非常方便了。

到此這篇關(guān)于Go語言JSON解析器gjson使用方法詳解的文章就介紹到這了,更多相關(guān)Go JSON解析器gjson內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在golang中使用Sync.WaitGroup解決等待的問題

    在golang中使用Sync.WaitGroup解決等待的問題

    這篇文章主要介紹了在golang中使用Sync.WaitGroup解決等待的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go語言實現(xiàn)單端口轉(zhuǎn)發(fā)到多個端口

    Go語言實現(xiàn)單端口轉(zhuǎn)發(fā)到多個端口

    這篇文章主要為大家詳細介紹了Go語言實現(xiàn)單端口轉(zhuǎn)發(fā)到多個端口,文中的示例代碼講解詳細,具有一定的參考價值,對大家的學(xué)習(xí)或工作有一定的幫助,需要的小伙伴可以了解下
    2024-02-02
  • Go語言實現(xiàn)AzDG可逆加密算法實例

    Go語言實現(xiàn)AzDG可逆加密算法實例

    這篇文章主要介紹了Go語言實現(xiàn)AzDG可逆加密算法,實例分析了AzDG可逆加密算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言中字符串四種拼接方式的性能對比

    Go語言中字符串四種拼接方式的性能對比

    在go語言中,字符串是不可變的,因此字符串之間的拼接實際上是創(chuàng)建了一個新的字符串,如果頻繁操作會對性能產(chǎn)生嚴重的影響,下面我們來看看Go語言中字符串四種常見拼接方式的性能對比吧
    2025-04-04
  • 用go實現(xiàn)反向代理的代碼示例

    用go實現(xiàn)反向代理的代碼示例

    當(dāng)實現(xiàn)反向代理時,Go語言是一個強大而受歡迎的選擇,Go具有出色的并發(fā)性和網(wǎng)絡(luò)編程支持,使其成為構(gòu)建高性能反向代理的理想工具,在本文中,我將介紹如何使用Go語言實現(xiàn)一個簡單的反向代理服務(wù)器,并提供相應(yīng)的源代碼,需要的朋友可以參考下
    2023-06-06
  • Golang中函數(shù)(Function)和方法(Method)的區(qū)別詳解

    Golang中函數(shù)(Function)和方法(Method)的區(qū)別詳解

    在Golang中,大家必然會頻繁使用到函數(shù)(Function)和方法(Method),但是有的同學(xué)可能并沒有注意過函數(shù)和方法的異同點,函數(shù)和方法都是用來執(zhí)行特定任務(wù)的代碼塊,雖然很相似,但也有很大的區(qū)別,所以本文將詳細講解函數(shù)和方法的定義以及它們的異同點
    2023-07-07
  • 一文理解Goland協(xié)程調(diào)度器scheduler的實現(xiàn)

    一文理解Goland協(xié)程調(diào)度器scheduler的實現(xiàn)

    本文主要介紹了Goland協(xié)程調(diào)度器scheduler的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • golang判斷兩個事件是否存在沖突的方法示例

    golang判斷兩個事件是否存在沖突的方法示例

    這篇文章主要為大家詳細介紹了golang判斷兩個事件是否存在沖突的方法示例,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Go習(xí)慣用法(多值賦值短變量聲明賦值簡寫模式)基礎(chǔ)實例

    Go習(xí)慣用法(多值賦值短變量聲明賦值簡寫模式)基礎(chǔ)實例

    本文為大家介紹了Go習(xí)慣用法(多值賦值,短變量聲明和賦值,簡寫模式、多值返回函數(shù)、comma,ok 表達式、傳值規(guī)則)的基礎(chǔ)實例,幫大家鞏固扎實Go語言基礎(chǔ)
    2024-01-01
  • Go語言入門教程之基礎(chǔ)語法快速入門

    Go語言入門教程之基礎(chǔ)語法快速入門

    這篇文章主要介紹了Go語言入門教程之基礎(chǔ)語法快速入門,本文講解了值類型、變量、常量、循環(huán)、條件語句、條件枚舉等內(nèi)容,需要的朋友可以參考下
    2014-11-11

最新評論

嵩明县| 玉门市| 平利县| 昭觉县| 共和县| 横山县| 临沭县| 七台河市| 舟曲县| 黑龙江省| 河北省| 南雄市| 瓦房店市| 台湾省| 海淀区| 垦利县| 汪清县| 松溪县| 海口市| 台南市| 墨脱县| 晋城| 苍溪县| 新竹县| 奈曼旗| 日照市| 林州市| 南丰县| 定南县| 姜堰市| 浮山县| 长海县| 沙田区| 阳曲县| 阳原县| 固安县| 开江县| 定西市| 罗定市| 正镶白旗| 文山县|