go 格式化修复 json 字符串
目录
问题
有些 json 字符串可能出现格式问题,
当 go 使用 json.Unmarshal 时,存在 json 字符串数据不是标准的 json 格式,导致反序列化失败
解决
使用 json.Indent 进行修复
package main
import (
"encoding/json"
"fmt"
"strings"
)
func main() {
jsonData := `{"field1": "value1", "field2": 42`
// 修复 JSON 数据为正确的格式
var b strings.Builder
err := json.Indent(&b, []byte(jsonData), "", "\t")
if err != nil {
fmt.Println("Error:", err)
return
}
// 获取修复后的 JSON 数据
fixedJSON := b.String()
fmt.Println("Fixed JSON:", fixedJSON)
// 解析修复后的 JSON 数据
var data map[string]interface{}
err = json.Unmarshal([]byte(fixedJSON), &data)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Parsed data:", data)
}