Home | History | Annotate | Download | only in json

Lines Matching full:reflect

16 	"reflect"
101 Type reflect.Type // type of Go value it could not be assigned to
114 Type reflect.Type
115 Field reflect.StructField
125 Type reflect.Type
133 if e.Type.Kind() != reflect.Ptr {
149 rv := reflect.ValueOf(v)
150 if rv.Kind() != reflect.Ptr || rv.IsNil() {
151 return &InvalidUnmarshalError{reflect.TypeOf(v)}
257 func (d *decodeState) value(v reflect.Value) {
315 d.array(reflect.Value{})
318 d.object(reflect.Value{})
333 func (d *decodeState) indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {
337 if v.Kind() != reflect.Ptr && v.Type().Name() != "" && v.CanAddr() {
343 if v.Kind() == reflect.Interface && !v.IsNil() {
345 if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) {
351 if v.Kind() != reflect.Ptr {
355 if v.Elem().Kind() != reflect.Ptr && decodingNull && v.CanSet() {
359 v.Set(reflect.New(v.Type().Elem()))
363 return u, nil, reflect.Value{}
366 return nil, u, reflect.Value{}
376 func (d *decodeState) array(v reflect.Value) {
398 case reflect.Interface:
400 // Decoding into nil interface? Switch to non-reflect code.
401 v.Set(reflect.ValueOf(d.arrayInterface()))
411 case reflect.Array:
412 case reflect.Slice:
429 if v.Kind() == reflect.Slice {
436 newv := reflect.MakeSlice(v.Type(), v.Len(), newcap)
437 reflect.Copy(newv, v)
450 d.value(reflect.Value{})
465 if v.Kind() == reflect.Array {
467 z := reflect.Zero(v.Type().Elem())
475 if i == 0 && v.Kind() == reflect.Slice {
476 v.Set(reflect.MakeSlice(v.Type(), 0, 0))
484 func (d *decodeState) object(v reflect.Value) {
503 // Decoding into nil interface? Switch to non-reflect code.
504 if v.Kind() == reflect.Interface && v.NumMethod() == 0 {
505 v.Set(reflect.ValueOf(d.objectInterface()))
511 case reflect.Map:
514 if t.Key().Kind() != reflect.String {
521 v.Set(reflect.MakeMap(t))
523 case reflect.Struct:
532 var mapElem reflect.Value
555 var subv reflect.Value
558 if v.Kind() == reflect.Map {
561 mapElem = reflect.New(elemType).Elem()
563 mapElem.Set(reflect.Zero(elemType))
583 if subv.Kind() == reflect.Ptr {
585 subv.Set(reflect.New(subv.Type().Elem()))
618 if v.Kind() == reflect.Map {
619 kv := reflect.ValueOf(key).Convert(v.Type().Key())
637 func (d *decodeState) literal(v reflect.Value) {
657 return nil, &UnmarshalTypeError{"number " + s, reflect.TypeOf(0.0), int64(d.off)}
662 var numberType = reflect.TypeOf(Number(""))
669 func (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) {
714 case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:
715 v.Set(reflect.Zero(v.Type()))
727 case reflect.Bool:
729 case reflect.Interface:
731 v.Set(reflect.ValueOf(value))
749 case reflect.Slice:
750 if v.Type().Elem().Kind() != reflect.Uint8 {
760 v.Set(reflect.ValueOf(b[0:n]))
761 case reflect.String:
763 case reflect.Interface:
765 v.Set(reflect.ValueOf(string(s)))
782 if v.Kind() == reflect.String && v.Type() == numberType {
791 case reflect.Interface:
801 v.Set(reflect.ValueOf(n))
803 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
811 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
819 case reflect.Float32, reflect.Float64: