在Go语言中,可以使用encoding/json包来将JSON转换为map,其中key和value都是string类型。

首先,你需要定义一个结构体来表示JSON对象的结构。在这个结构体中,将所有的字段都定义为string类型,以便与map的key和value类型匹配。

type MyJSON struct {
    Key1 string `json:"key1"`
    Key2 string `json:"key2"`
    // ...
}

然后,你可以使用json.Unmarshal()函数将JSON字符串解码为该结构体的实例。

jsonStr := `{"key1": "value1", "key2": "value2"}`
var data MyJSON
err := json.Unmarshal([]byte(jsonStr), &data)
if err != nil {
    fmt.Println("JSON解码失败:", err)
    return
}

最后,你可以将该结构体转换为map类型,其中key和value都是string。

result := map[string]string{
    "key1": data.Key1,
    "key2": data.Key2,
    // ...
}

完整的示例代码如下:

package main

import (
    "encoding/json"
    "fmt"
)

type MyJSON struct {
    Key1 string `json:"key1"`
    Key2 string `json:"key2"`
}

func main() {
    jsonStr := `{"key1": "value1", "key2": "value2"}`
    var data MyJSON
    err := json.Unmarshal([]byte(jsonStr), &data)
    if err != nil {
        fmt.Println("JSON解码失败:", err)
        return
    }

    result := map[string]string{
        "key1": data.Key1,
        "key2": data.Key2,
    }

    fmt.Println(result)
}

运行以上代码,输出结果为:

map[key1:value1 key2:value2]

注意:在实际使用中,你可能需要根据JSON的结构来定义更复杂的结构体,以便正确解析JSON数据。

golang 将json转换为map key和value都是string

原文地址: http://www.cveoy.top/t/topic/hKFv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录