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