1 回答

TA貢獻1805條經驗 獲得超9個贊
這里有一個例子:
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個字節interface必須[]byte被刪除
結果:
false
true
- 1 回答
- 0 關注
- 281 瀏覽
添加回答
舉報