Open ling-zhou opened 3 years ago
I think the issue is in the standard library itself
package main
import (
"bytes"
"encoding/json"
"fmt"
)
func main() {
body := `"{"client_id":"abc123","client_ip":"59.37.125.15","client_version":"1"}"`
// body := `{"client_id":"abc123","client_ip":"59.37.125.15","client_version":"1"}`
// what we normally do (works as expected with an error)
var x interface{}
err := json.Unmarshal([]byte(body), &x)
if err != nil {
fmt.Printf("Err: %v\n", err)
}
fmt.Printf("x: (%v)\n", x)
// the code used by this library to decode (same standard lib but it succeeds)
var y interface{}
dec := json.NewDecoder(bytes.NewReader([]byte(body)))
err = dec.Decode(&y)
if err != nil {
fmt.Printf("Err: %v\n", err)
}
fmt.Printf("y: (%v)\n", y)
}