日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編草莓分享一種解組JSON數(shù)據(jù)并將其存儲(chǔ)在Go語(yǔ)言結(jié)構(gòu)中的方法。JSON是一種常用的數(shù)據(jù)交換格式,Go語(yǔ)言提供了方便的解析和處理JSON數(shù)據(jù)的工具包。通過(guò)使用Go語(yǔ)言內(nèi)置的”json”包,我們可以輕松地將JSON數(shù)據(jù)解組成相應(yīng)的結(jié)構(gòu)體,并進(jìn)行存儲(chǔ)和處理。這種方法簡(jiǎn)單易懂,能夠幫助開(kāi)發(fā)者高效地處理JSON數(shù)據(jù),提升開(kāi)發(fā)效率。下面我們來(lái)詳細(xì)介紹如何使用Go語(yǔ)言解組JSON數(shù)據(jù),并將其存儲(chǔ)在結(jié)構(gòu)體中。

問(wèn)題內(nèi)容

這是我在程序中使用 go struct 存儲(chǔ)的 json 測(cè)試數(shù)據(jù)

[
  {
    "id": 393,
    "question": "the \"father\" of mysql is ______.",
    "description": null,
    "answers": {
      "answer_a": "bill joy",
      "answer_b": "stephanie wall",
      "answer_c": "bill gates",
      "answer_d": "michael widenius",
      "answer_e": null,
      "answer_f": null
    },
    "multiple_correct_answers": "false",
    "correct_answers": {
      "answer_a_correct": "false",
      "answer_b_correct": "false",
      "answer_c_correct": "false",
      "answer_d_correct": "true",
      "answer_e_correct": "false",
      "answer_f_correct": "false"
    },
    "correct_answer": "answer_a",
    "explanation": null,
    "tip": null,
    "tags": [
      {
        "name": "mysql"
      }
    ],
    "category": "sql",
    "difficulty": "medium"
  }
]

登錄后復(fù)制

這是我編寫的用于存儲(chǔ)數(shù)據(jù)的函數(shù),但無(wú)法獲得正確的響應(yīng),而不是在打印時(shí)得到一個(gè)空白結(jié)構(gòu)

func FetchQuiz(num int, category string) {
    // write code to read json file
    jsonFile, err := os.Open("test.json")
    if err != nil {
        fmt.Println(err)
    }
    defer jsonFile.Close()

    byteValue, _ := ioutil.ReadAll(jsonFile)

    fmt.Println(string(byteValue))

    type Data struct {
        ID          int
        Question    string
        Description string
        Answers     struct {
            A string
            B string
            C string
            D string
            E string
            F string
        }
        MultipleCorrectAnswers string
        CorrectAnswers         struct {
            A string
            B string
            C string
            D string
            E string
            F string
        }

        CorrectAnswer string
        Explanation   string
        Tip           string
        Tags          []struct {
            Name string
        }
        Category   string
        Difficulty string
    }

    var QuizList2 []Data

    if err := json.Unmarshal(byteValue, &QuizList2); err != nil {
        fmt.Println(err.Error())
    }

    fmt.Println(QuizList2)

登錄后復(fù)制

但得到的響應(yīng)是[{393 mysql的“父親”是______。 { } { } [{mysql}] sql medium}]我已經(jīng)嘗試了一切方法來(lái)解決它,但沒(méi)有達(dá)到響應(yīng)

解決方法

json 字段 answer_a 不會(huì)單獨(dú)映射到 go 字段 a

更改 go 字段的名稱以匹配 json 字段的名稱(忽略大小寫):

answer_a string

登錄后復(fù)制

或者在您的字段中使用 go struct 標(biāo)記

A string `json:"answer_a"`

登錄后復(fù)制

對(duì)與相應(yīng) json 字段不匹配的其余 go 字段執(zhí)行相同的操作。

分享到:
標(biāo)簽:Go語(yǔ)言
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定