1 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這里有一個(gè)例子:
package main
import (
"bytes"
"encoding/gob"
"encoding/json"
"fmt"
)
func main() {
var data interface{}
data = `{"name""latif"}`
valid := `{"name":"latif"}`
isValid := isValidJSON(data)
fmt.Printf("%+v\n", isValid)
isValid = isValidJSON(valid)
fmt.Printf("%+v\n", isValid)
}
func isValidJSON(i interface{}) bool {
var str map[string]string
data, err := getBytes(i)
if err != nil {
panic(err.Error())
}
data = data[4:]
err = json.Unmarshal(data, &str)
return err == nil
}
func getBytes(i interface{}) ([]byte, error) {
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
err := enc.Encode(i)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
注意:編碼后的前4個(gè)字節(jié)interface必須[]byte被刪除
結(jié)果:
false
true
- 1 回答
- 0 關(guān)注
- 274 瀏覽
添加回答
舉報(bào)