mirror of
https://github.com/json-iterator/go.git
synced 2025-03-20 20:54:55 +02:00
optimize read string
This commit is contained in:
parent
38120d5ff2
commit
48544a1e79
16
jsoniter.go
16
jsoniter.go
@ -253,7 +253,7 @@ func (iter *Iterator) ReadInt64() (ret int64) {
|
||||
}
|
||||
|
||||
func (iter *Iterator) ReadString() (ret string) {
|
||||
str := make([]byte, 0, 10)
|
||||
str := make([]byte, 0, 8)
|
||||
c := iter.readByte()
|
||||
if iter.Error != nil {
|
||||
return
|
||||
@ -338,7 +338,7 @@ func (iter *Iterator) ReadString() (ret string) {
|
||||
return
|
||||
}
|
||||
case '"':
|
||||
return string(str)
|
||||
return *(*string)(unsafe.Pointer(&str))
|
||||
default:
|
||||
str = append(str, c)
|
||||
}
|
||||
@ -484,11 +484,7 @@ func (iter *Iterator) ReadObject() (ret string) {
|
||||
return "" // end of object
|
||||
case '"':
|
||||
iter.unreadByte()
|
||||
field := iter.readObjectField()
|
||||
if iter.Error != nil {
|
||||
return
|
||||
}
|
||||
return field
|
||||
return iter.readObjectField()
|
||||
default:
|
||||
iter.ReportError("ReadObject", `expect " after {`)
|
||||
return
|
||||
@ -496,11 +492,7 @@ func (iter *Iterator) ReadObject() (ret string) {
|
||||
}
|
||||
case ',':
|
||||
iter.skipWhitespaces()
|
||||
field := iter.readObjectField()
|
||||
if iter.Error != nil {
|
||||
return
|
||||
}
|
||||
return field
|
||||
return iter.readObjectField()
|
||||
case '}':
|
||||
return "" // end of object
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user