我嘗試復制此正文以在請求中使用它:
{"Responses":[{"type":"DROP_DOWN","value":"0"}]}
所以我在做的是:
type FruitBasket struct {
Name5 []string `json:"Responses"`
}
form := payload{
Name5: []string{"type", "value"},
}
jsonData, err := json.Marshal(form)
fmt.Println(string(jsonData))
但我找不到在括號中完成正文的方法
uj5u.com熱心網友回復:
您需要使用“encoding/json”包中的 Unmarshal 函式并使用虛擬結構來提取切片欄位
// You can edit this code!
// Click here and start typing.
package main
import (
"encoding/json"
"fmt"
)
func main() {
str := `{"Responses":[{"type":"DROP_DOWN","value":"0"}]}`
type Responses struct {
Type string `json:"type"`
Value string `json:"value"`
}
// add dummy struct to hold responses
type Dummy struct {
Responses []Responses `json:"Responses"`
}
var res Dummy
err := json.Unmarshal([]byte(str), &res)
if err != nil {
panic(err)
}
fmt.Println("%v", len(res.Responses))
fmt.Println("%s", res.Responses[0].Type)
fmt.Println("%s", res.Responses[0].Value)
}
uj5u.com熱心網友回復:
JSON-to-go是一個很好的在線資源,可以為特定的 JSON 模式制作 Go 日期型別。
粘貼您的 JSON 正文并提取嵌套型別,您可以使用以下型別生成所需的 JSON 模式:
// types to produce JSON:
//
// {"Responses":[{"type":"DROP_DOWN","value":"0"}]}
type FruitBasket struct {
Response []Attr `json:"Responses"`
}
type Attr struct {
Type string `json:"type"`
Value string `json:"value"`
}
使用:
form := FruitBasket{
Response: []Attr{
{
Type: "DROP_DOWN",
Value: "0",
},
}
}
jsonData, err := json.Marshal(form)
作業示例:https ://go.dev/play/p/SSWqnyVtVhF
輸出:
{"Responses":[{"type":"DROP_DOWN","value":"0"}]}
uj5u.com熱心網友回復:
你的結構不正確。您的標題需要字典,但您撰寫了一個陣列或字串切片。
從此更改您的 FruitBasket 結構:
type FruitBasket struct {
Name5 []string `json:"Responses"`
}
對此
type FruitBasket struct {
Name5 []map[string]interface{} `json:"Responses"`
}
map[string]interface{}是字典嗎
這是游樂場https://go.dev/play/p/xRSDGdZYfRN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434811.html
下一篇:識別推文訊息中正確的主題標簽索引
