如何在golang和echo框架中将json转换为字符串?
How to convert json to string in golang and echo framework?
我有 json post
收到的
{"endpoint": "assistance"}
我是这样收到的
json_map: = make (map[string]interface{})
现在我需要将它作为字符串分配给一个变量,但我不知道该怎么做。
endpoint: = c.String (json_map ["endpoint"])
您要实现的目标不是将 JSON 转换为字符串,而是将空接口 interface{}
转换为 string
您可以通过 type assertion:
endpoint, ok := json_map["endpoint"].(string)
if !ok {
// handle the error if the underlying type was not a string
}
此外,正如 @Lex 提到的那样,使用定义 JSON 数据的 Go 结构可能会更安全。这样你的所有字段都将被键入,你将不再需要这种类型断言。
一种类型安全的方法是创建一个表示您的请求对象的结构并将其解组。
这会让您对意外请求感到恐慌。
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 解码为结构并打印值。
我有 json post
收到的{"endpoint": "assistance"}
我是这样收到的
json_map: = make (map[string]interface{})
现在我需要将它作为字符串分配给一个变量,但我不知道该怎么做。
endpoint: = c.String (json_map ["endpoint"])
您要实现的目标不是将 JSON 转换为字符串,而是将空接口 interface{}
转换为 string
您可以通过 type assertion:
endpoint, ok := json_map["endpoint"].(string)
if !ok {
// handle the error if the underlying type was not a string
}
此外,正如 @Lex 提到的那样,使用定义 JSON 数据的 Go 结构可能会更安全。这样你的所有字段都将被键入,你将不再需要这种类型断言。
一种类型安全的方法是创建一个表示您的请求对象的结构并将其解组。
这会让您对意外请求感到恐慌。
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 解码为结构并打印值。