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

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

如何將標頭添加到 JSON 以識別數組值的數組名稱

如何將標頭添加到 JSON 以識別數組值的數組名稱

Go
湖上湖 2023-04-24 16:12:14
我正在嘗試查看是否有一種方法(簡單方法)可以使用encoding/jsonGO 向 JSON 中的每個數組添加標頭。我的意思是說?想要有這樣的東西:{     "Dog":[      {           "breed":"Chihuahua",           "color":"brown"      },      {           "breed":"Pug",           "color":"white"      }    ],     "Cat":[     {           "breed":"British",           "color":"white"     },           "breed":"Ragdoll",           "color":"gray"     }    ]}主要思想是在這種情況下有一個“類別”Dog和Cat。我已經有了這個解決方案,但我正在尋找可以改進它的東西。我的代碼如下所示:type Dog struct {   Breed string   Color string}type Cat struct {   Breed string   Color string}func main(){   dogs := [...]Dog{       {"Chihuahua", "brown"},       {"Pug", "white"},   }   cats := [...]Cat{        {"British", "white"},        {"Ragdoll", "gray"},   }   c, err := json.MarshalIndent(cats, "", "\t")   if err != nil {       log.Fatal(err)   }   d, err := json.MarshalIndent(dogs, "", "\t")   if err != nil {      log.Fatal(err)   }   fmt.Println("{")   fmt.Printf("    \"Dog\": %v,\n", string(d))   fmt.Printf("    \"Cat\": %v\n}", string(c))}主要想法是將“狗”和“貓”作為新數組,但我想改進我的代碼,不要讓它看起來像應該的那樣“硬編碼”,我想知道是否有一種簡單的方法添加標題“Dog”和所有數組值,添加標題“Cat”和所有數組值。
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

不需要為狗和貓分別創建json對象。這將導致在編組數據時產生單獨的 json 對象。


您嘗試的方法基本上是適當且無用的。


方法應該創建一個結果結構,它將 dogs 和 cats 結構作為字段,類型分別作為它們的切片。舉個例子:


package main


import (

? ? "fmt"

? ? "encoding/json"

? ? "log"

)


type Result struct{

? ? Dog []Dog

? ? Cat []Cat

}


type Dog struct{

? ?Breed string

? ?Color string

}


type Cat struct {

? ?Breed string

? ?Color string

}


func main(){


? ?dogs := []Dog{

? ? ? ?{"Chihuahua", "brown"},

? ? ? ?{"Pug", "white"},

? ?}


? ?cats := []Cat{

? ? ? ? {"British", "white"},

? ? ? ? {"Ragdoll", "gray"},

? ?}


? ?result := Result{

? ? Dog: dogs,

? ? Cat: cats,

? ?}?


? ?output, err := json.MarshalIndent(result, "", "\t")

? ?if err != nil {

? ? ? ?log.Fatal(err)

? ?}

? ?fmt.Println(string(output))


}

輸出:


{

? ? "Dog": [

? ? ? ? {

? ? ? ? ? ? "Breed": "Chihuahua",

? ? ? ? ? ? "Color": "brown"

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? "Breed": "Pug",

? ? ? ? ? ? "Color": "white"

? ? ? ? }

? ? ],

? ? "Cat": [

? ? ? ? {

? ? ? ? ? ? "Breed": "British",

? ? ? ? ? ? "Color": "white"

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? "Breed": "Ragdoll",

? ? ? ? ? ? "Color": "gray"

? ? ? ? }

? ? ]

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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