第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

手動讀取 JSON 值

手動讀取 JSON 值

Go
SMILET 2022-01-17 16:30:46
在 Go 中,我通常將我的 JSON 解組為一個結構并從結構中讀取值。它工作得很好。這一次我只關心 JSON 對象的某個元素,因為整個 JSON 對象非常大,我不想創(chuàng)建一個結構。Go 中有沒有辦法讓我可以像往常一樣使用鍵或迭代數(shù)組在 JSON 對象中查找值??紤]到以下 JSON,我怎么能只拉出該title字段。{  "title": "Found a bug",  "body": "I'm having a problem with this.",  "assignee": "octocat",  "milestone": 1,  "labels": [    "bug"  ]}
查看完整描述

3 回答

?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

不要聲明你不想要的字段。


https://play.golang.org/p/cQeMkUCyFy


package main


import (

    "fmt"

    "encoding/json"

)


type Struct struct {

    Title   string  `json:"title"`

}


func main() {

    test := `{

        "title": "Found a bug",

        "body": "I'm having a problem with this.",

        "assignee": "octocat",

        "milestone": 1,

        "labels": [

          "bug"

        ]

    }`


    var s Struct

    json.Unmarshal([]byte(test), &s)


    fmt.Printf("%#v", s)


}

或者,如果您想完全擺脫結構:


var i interface{}

json.Unmarshal([]byte(test), &i)


fmt.Printf("%#v\n", i)

fmt.Println(i.(map[string]interface{})["title"].(string))

或者。它會吞下所有的轉(zhuǎn)換錯誤。


m := make(map[string]string)


json.Unmarshal([]byte(test), interface{}(&m))


fmt.Printf("%#v\n", m)

fmt.Println(m["title"])


查看完整回答
反對 回復 2022-01-17
?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

要擴展 Darigaaz 的答案,您還可以使用在解析函數(shù)中聲明的匿名結構。這避免了必須讓包級別的類型聲明在單一用例的代碼中亂扔垃圾。


https://play.golang.org/p/MkOo1KNVbs


package main


import (

    "encoding/json"

    "fmt"

)


func main() {

    test := `{

        "title": "Found a bug",

        "body": "I'm having a problem with this.",

        "assignee": "octocat",

        "milestone": 1,

        "labels": [

          "bug"

        ]

    }`


    var s struct {

        Title string `json:"title"`

    }

    json.Unmarshal([]byte(test), &s)


    fmt.Printf("%#v", s)


}


查看完整回答
反對 回復 2022-01-17
?
浮云間

TA貢獻1829條經(jīng)驗 獲得超4個贊

查看go-simplejson


例子:


js, err := simplejson.NewJson([]byte(`{

  "test": {

    "string_array": ["asdf", "ghjk", "zxcv"],

    "string_array_null": ["abc", null, "efg"],

    "array": [1, "2", 3],

    "arraywithsubs": [{"subkeyone": 1},

    {"subkeytwo": 2, "subkeythree": 3}],

    "int": 10,

    "float": 5.150,

    "string": "simplejson",

    "bool": true,

    "sub_obj": {"a": 1}

  }

}`))


if _, ok = js.CheckGet("test"); !ok {

  // Missing test struct

}


aws := js.Get("test").Get("arraywithsubs")

aws.GetIndex(0)


查看完整回答
反對 回復 2022-01-17
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號