可以使用Unmarshal方法将json.RawMessage转换为结构体或者map类型,然后获取其中的数据。

例如,假设有以下的json数据:

{
  "name": "John",
  "age": 30,
  "address": {
    "city": "New York",
    "state": "NY"
  }
}

可以使用json.RawMessage将其解码为一个变量:

var data json.RawMessage = []byte(`{
  "name": "John",
  "age": 30,
  "address": {
    "city": "New York",
    "state": "NY"
  }
}`)

然后可以将其转换为map类型:

var m map[string]interface{}
if err := json.Unmarshal(data, &m); err != nil {
    panic(err)
}

现在可以使用map的方式访问其中的数据:

fmt.Println(m["name"]) // John
fmt.Println(m["age"]) // 30
address := m["address"].(map[string]interface{})
fmt.Println(address["city"]) // New York
fmt.Println(address["state"]) // NY

类似的,也可以将json解码为结构体类型,然后访问其中的数据。

golang json.RawMessage 怎么获取里面的数据

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

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