我的任務是將我的專案從 Python 轉換為 Go,但我已經為此困擾了好幾個小時。
我有這個檔案 data.json 包含以下資料
{
"mobiles":["iPhone 13 Pro","OnePlus 10 Pro","Google Pixel 6"],
"laptops":["Dell XSP 13","Acer Chromebook Spin","Lenovo ThinkPad x1"],
"cars":["Suzuki Crossover","Golf GTI","Hyundai Tucson","Hyundai Kona"]
}
對于我的專案,我想將 data.json 中的資料加載到以下切片中
mobiles := []{ data from json }
laptops := []{ data from json }
cars := []{ data from json }
我正在考慮使用切片,如果我沒記錯的話,是否可以根據需要向 json 檔案中的陣列添加更多資料?
jsonFile, err := os.Open("data/data.json")
if err != nil {
fmt.Println(err)
}
fmt.Println(jsonFile)
fmt.Println("Successfully Opened data.json")
這給了我:&{0xc000062180} 成功打開 data.json
我試圖定位我需要的資料,例如:
fmt.Println(jsonFile["cars"])
我需要了解指標還是我完全在錯誤地吠叫?
uj5u.com熱心網友回復:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
type Todo struct {
Mobiles []string `json:"mobiles"`
Laptops []string `json:"laptops"`
Cars []string `json:"cars"`
}
func main() {
jsonFile, err := os.Open("file.json")
if err != nil {
panic(err)
}
defer jsonFile.Close()
byteValue, err := ioutil.ReadAll(jsonFile)
if err != nil {
panic(err)
}
var todo Todo
json.Unmarshal([]byte(byteValue), &todo)
fmt.Println(todo)
fmt.Println(todo.Cars)
}
第一個輸出將是您的 json 檔案
{[iPhone 13 Pro OnePlus 10 Pro Google Pixel 6] [Dell XSP 13 Acer Chromebook Spin Lenovo ThinkPad x1] [Suzuki Crossover Golf GTI Hyundai Tucson Hyundai Kona]}
第二個是汽車
[鈴木Crossover Golf GTI現代途勝現代科納]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524280.html
標籤:数组json去
上一篇:如果帶有posgres連接的SQLX的transaction.Commit失敗,您是否需要呼叫transaction.RollBack
下一篇:沒有埠轉發的調度器-作業者集群
