mirror of
https://github.com/json-iterator/go.git
synced 2025-02-19 19:59:49 +02:00
unmarshal failed return non-pointer error
This commit is contained in:
parent
d09e2419ba
commit
0f5379494a
@ -1,8 +1,10 @@
|
|||||||
package jsoniter
|
package jsoniter
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"errors"
|
||||||
|
"io"
|
||||||
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Unmarshal adapts to json/encoding Unmarshal API
|
// Unmarshal adapts to json/encoding Unmarshal API
|
||||||
@ -12,6 +14,12 @@ import (
|
|||||||
func Unmarshal(data []byte, v interface{}) error {
|
func Unmarshal(data []byte, v interface{}) error {
|
||||||
data = data[:lastNotSpacePos(data)]
|
data = data[:lastNotSpacePos(data)]
|
||||||
iter := ParseBytes(data)
|
iter := ParseBytes(data)
|
||||||
|
typ := reflect.TypeOf(v)
|
||||||
|
if typ.Kind() != reflect.Ptr {
|
||||||
|
// return non-pointer error
|
||||||
|
err = errors.New("the second param must be ptr type")
|
||||||
|
return
|
||||||
|
}
|
||||||
iter.ReadVal(v)
|
iter.ReadVal(v)
|
||||||
if iter.head == iter.tail {
|
if iter.head == iter.tail {
|
||||||
iter.loadMore()
|
iter.loadMore()
|
||||||
@ -157,4 +165,4 @@ func (adapter *AdaptedEncoder) Encode(val interface{}) error {
|
|||||||
|
|
||||||
func (adapter *AdaptedEncoder) SetIndent(prefix, indent string) {
|
func (adapter *AdaptedEncoder) SetIndent(prefix, indent string) {
|
||||||
// not implemented yet
|
// not implemented yet
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user