我有一个来自Web服务的json,由于它是人工输入的值,因此对于json编组可能是无效的。我也无法控制这些值,因为它们是通过外部API传入的。是否有一种干净的方法可以对输入进行清理以在解组到结构之前从[]byte
中删除所有无效值?
package main
import (
"fmt"
"encoding/json"
)
type Test struct {
Field string `json:"test"`
}
func main() {
test := `{"test": " "}` //this is a tab character
obj := Test{}
if err := json.Unmarshal([]byte(test) , &obj); err != nil {
fmt.Printf("%v", err)
}
}
然后返回的错误是:
invalid character '\t' in string literal