golang 解析没有固定格式的json数据
在Go语言中,可以使用json.RawMessage类型来解析没有固定格式的JSON数据。json.RawMessage是一个字节切片类型,用于延迟解析JSON数据。
下面是一个示例代码,演示如何解析没有固定格式的JSON数据:
package main
import (
"encoding/json"
"fmt"
)
func main() {
// 假设有一个没有固定格式的JSON数据
rawData := `{"name":"John","age":30}`
// 创建一个json.RawMessage类型的变量
var raw json.RawMessage
// 将原始数据解析到raw变量中
err := json.Unmarshal([]byte(rawData), &raw)
if err != nil {
fmt.Println("解析JSON数据失败:", err)
return
}
// 使用RawMessage类型进行进一步解析
var data map[string]interface{}
err = json.Unmarshal(raw, &data)
if err != nil {
fmt.Println("解析JSON数据失败:", err)
return
}
// 打印解析后的数据
fmt.Println("Name:", data["name"])
fmt.Println("Age:", data["age"])
}
上述代码中,首先将原始数据解析到json.RawMessage类型的变量raw中。然后,使用json.Unmarshal函数将raw变量的内容解析到一个map[string]interface{}类型的变量data中。最后,可以通过data变量获取解析后的数据。
请注意,由于没有固定的JSON格式,所以在解析时需要进行错误处理。如果解析失败,可以根据具体情况进行处理。
原文地址: https://www.cveoy.top/t/topic/hKDI 著作权归作者所有。请勿转载和采集!