2 回答
TA贡献1804条经验 获得超7个赞
执行此操作的一种类型安全方法是创建一个表示请求对象的结构并取消编组。
这会使您对意外请求感到恐慌。
package main
import (
"encoding/json"
"fmt"
)
type response struct {
Endpoint string
}
func main() {
jsonBody := []byte(`{"endpoint": "assistance"}`)
data := response{}
if err := json.Unmarshal(jsonBody, &data); err != nil {
panic(err)
}
fmt.Println(data.Endpoint)
}
// assistance
该程序作为示例安全地将JSON解码为结构并打印值。
TA贡献1802条经验 获得超5个赞
您尝试实现的不是将 JSON 转换为字符串,而是将空接口转换为“您可以通过执行类型断言来实现此目的:interface{}string
endpoint, ok := json_map["endpoint"].(string)
if !ok {
// handle the error if the underlying type was not a string
}
此外,正如@Lex提到的,使用Go结构定义JSON数据可能会更安全。这样,您的所有字段都将被键入,您将不再需要这种类型断言。
- 2 回答
- 0 关注
- 73 浏览
添加回答
举报