1
0
mirror of https://github.com/json-iterator/go.git synced 2025-07-03 23:30:41 +02:00

remove GetObject & GetArray from Any

This commit is contained in:
Tao Wen
2017-07-09 16:15:45 +08:00
parent f0487718f6
commit db3f5046d7
4 changed files with 18 additions and 97 deletions

View File

@ -33,65 +33,57 @@ func (any *arrayLazyAny) ToBool() bool {
func (any *arrayLazyAny) ToInt() int {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToInt32() int32 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToInt64() int64 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToUint() uint {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToUint32() uint32 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToUint64() uint64 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToFloat32() float32 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToFloat64() float64 {
if any.ToBool() {
return 1
} else {
return 0
}
return 0
}
func (any *arrayLazyAny) ToString() string {
@ -115,10 +107,9 @@ func (any *arrayLazyAny) Get(path ...interface{}) Any {
valueBytes := locateArrayElement(iter, firstPath)
if valueBytes == nil {
return newInvalidAny(path)
} else {
iter.ResetBytes(valueBytes)
return locatePath(iter, path[1:])
}
iter.ResetBytes(valueBytes)
return locatePath(iter, path[1:])
case int32:
if '*' == firstPath {
iter := any.cfg.BorrowIterator(any.buf)
@ -132,9 +123,8 @@ func (any *arrayLazyAny) Get(path ...interface{}) Any {
return true
})
return wrapArray(arr)
} else {
return newInvalidAny(path)
}
return newInvalidAny(path)
default:
return newInvalidAny(path)
}
@ -152,17 +142,6 @@ func (any *arrayLazyAny) Size() int {
return size
}
func (any *arrayLazyAny) GetArray() []Any {
elements := make([]Any, 0)
iter := any.cfg.BorrowIterator(any.buf)
defer any.cfg.ReturnIterator(iter)
iter.ReadArrayCB(func(iter *Iterator) bool {
elements = append(elements, iter.ReadAny())
return true
})
return elements
}
func (any *arrayLazyAny) WriteTo(stream *Stream) {
stream.Write(any.buf)
}
@ -279,9 +258,8 @@ func (any *arrayAny) Get(path ...interface{}) Any {
}
}
return wrapArray(mappedAll)
} else {
return newInvalidAny(path)
}
return newInvalidAny(path)
default:
return newInvalidAny(path)
}
@ -291,14 +269,6 @@ func (any *arrayAny) Size() int {
return any.val.Len()
}
func (any *arrayAny) GetArray() []Any {
elements := make([]Any, any.val.Len())
for i := 0; i < any.val.Len(); i++ {
elements[i] = Wrap(any.val.Index(i).Interface())
}
return elements
}
func (any *arrayAny) WriteTo(stream *Stream) {
stream.WriteVal(any.val)
}