4 回答

TA貢獻1811條經驗 獲得超4個贊
讓我們考慮這個解決方案:
arrDetails := map[int]map[string]string{}
index := 0
for _, orderdetails := range ordersfromdb {
? ? arrDetails[index] = map[string]string{} // you have to initialize map
? ? arrDetails[index]["OrderNumber"] = "001"
? ? arrDetails[index]["customernum"] = "cust_001"
? ? arrDetails[index]["orderstatus"] = "open"
? ? arrDetails[index]["orderprice"] = "200"
? ? index++
}
要將結果轉換為 json(正如我看到你在對@liao yu 的回答的評論中提出的問題),我們應該學習更多關于標簽的知識:
import (
? ? "encoding/json"
? ? "fmt"
)
type OrderDetails struct {
? ? Number? ?string `json:"number"`
? ? Customer string `json:"customer"`
? ? Status? ?string `json:"status"`
? ? Price? ? string `json:"price"`
}
func main() {
? ? ordersfromdb := []int{1, 2, 3}
? ? var arrDetails []OrderDetails
? ? for _, v := range ordersfromdb {
? ? ? ? arrDetails = append(arrDetails, OrderDetails{
? ? ? ? ? ? Number:? ?fmt.Sprintf("order_number_%v", v),
? ? ? ? ? ? Customer: fmt.Sprintf("customer_%v", v),
? ? ? ? ? ? Status:? ?fmt.Sprintf("order_status_%v", v),
? ? ? ? ? ? Price:? ? fmt.Sprintf("$%v", v),
? ? ? ? })
? ? }
? ? data, err := json.Marshal(arrDetails)
? ? if err != nil {
? ? ? ? panic(err)
? ? }
? ? fmt.Println(string(data))
}

TA貢獻1831條經驗 獲得超9個贊
你可以試試這個:
import "fmt"
func main() {
var arrDetails []map[string]string
var index int = 0
//for _, orderdetails := range ordersfromdb {
for i:=0; i<5;i++ {
detail := make(map[string]string)
detail["OrderNumber"] = "001"
detail["customernum"] = "cust_001"
detail["orderstatus"] = "open"
detail["orderprice"] = "200"
arrDetails = append(arrDetails, detail)
index++
}
fmt.Printf("Hello, playground %+v", arrDetails )
}

TA貢獻1785條經驗 獲得超8個贊
正如您在此處將arrDetails變量定義為多維切片一樣[][]string。這意味著您不能將 a 分配string給它keys,而可以將字符串分配為值。
你可以像下面我提到的那樣做你的代碼。
package main
import (
"fmt"
)
func main() {
var arrDetails [][]string
var s []string
var index int
for i:=0; i<5;i++ {
s = []string{"001", "cust_001", "open", "200"}
arrDetails = append(arrDetails, s)
index++
}
fmt.Printf("Hello, playground %+v", arrDetails )
}
或者,如果你想要keys配對value,那么你必須用作map:
var arrDetails map[string]string

TA貢獻1775條經驗 獲得超8個贊
我按如下方式填充多維數組
arrDetails[index][0] = "001"
arrDetails[index][1] = "cust_001"
arrDetails[index][2] = "open"
arrDetails[index][3] = "200"
- 4 回答
- 0 關注
- 190 瀏覽
添加回答
舉報