From f873eb86e9c6b0b5456472cd8cbcecb8b0001317 Mon Sep 17 00:00:00 2001 From: runcong zhang <39239990+ddzrc@users.noreply.github.com> Date: Thu, 8 Dec 2022 16:58:33 +0800 Subject: [PATCH] Update iter_str.go --- iter_str.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/iter_str.go b/iter_str.go index adc487ea..08e05883 100644 --- a/iter_str.go +++ b/iter_str.go @@ -3,8 +3,14 @@ package jsoniter import ( "fmt" "unicode/utf16" + "unsafe" ) +// bytesToString convert []byte to string +func bytesToString(b []byte) string { + return *(*string)(unsafe.Pointer(&b)) +} + // ReadString read string from iterator func (iter *Iterator) ReadString() (ret string) { c := iter.nextToken() @@ -12,7 +18,7 @@ func (iter *Iterator) ReadString() (ret string) { for i := iter.head; i < iter.tail; i++ { c := iter.buf[i] if c == '"' { - ret = string(iter.buf[iter.head:i]) + ret = bytesToString(iter.buf[iter.head:i]) iter.head = i + 1 return ret } else if c == '\\' {