亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何讀取多個json文件

如何讀取多個json文件

Go
喵喔喔 2023-07-10 17:36:16
我正在嘗試從多個 json 文件讀取 json 數據。我不確定如何讀取每個文件并連接所有結果json 文件名是 test1.json、test2.json test3.json..etc 具有相同的數據結構,但我在讀取所有內容時遇到問題,并且我的代碼似乎只顯示最后一個。我已經根據文件名連接了一個字符串,但似乎不適合我。type Book struct {    Id    string `json: "id"`    Title string `json: "title"`}func main() {    fileIndex := 2 // three json files. All named test1.json, test2.json and test3.json    var master []Book    for i := 0; i <= fileIndex; i++ {        fileName := fmt.Sprintf("%s%d%s", "test", fileIndex, ".json")        // Open jsonFile        jsonFile, err := os.Open(fileName)        defer jsonFile.Close()        byteValue, _ := ioutil.ReadAll(jsonFile)        fmt.Println(byteValue)        var book []Book        json.Unmarshal(byteValue, &book)        fmt.Println(book) // all print shows the test3.json result     }}我需要能夠讀取所有三個 json 文件并希望連接所有結果。誰能幫我?謝謝你!
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

您在生成文件名時使用fileIndex,而不是i在 for 循環中使用。更改后的代碼將是:


type Book struct {

    Id    string `json: "id"`

    Title string `json: "title"`

}


func main() {

    fileIndex := 2 // three json files. All named test1.json, test2.json and test3.json


    var master []Book


    for i := 0; i <= fileIndex; i++ {

        fileName := fmt.Sprintf("%s%d%s", "test", i, ".json")


        // Open jsonFile

        jsonFile, err := os.Open(fileName)


        defer jsonFile.Close()


        byteValue, _ := ioutil.ReadAll(jsonFile)

        fmt.Println(byteValue)

        var book []Book


        json.Unmarshal(byteValue, &book)

        fmt.Println(book)

    }

}

另外,您可以在 for 循環中執行類似的操作master = append(master, book),以最終獲取所有 JSON 內容master


查看完整回答
反對 回復 2023-07-10
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號