@@ -3,7 +3,6 @@ package jsoniter
3
3
import (
4
4
"fmt"
5
5
"unicode"
6
- "unsafe"
7
6
)
8
7
9
8
// ReadObject read one field from object.
@@ -19,33 +18,25 @@ func (iter *Iterator) ReadObject() (ret string) {
19
18
c = iter .nextToken ()
20
19
if c == '"' {
21
20
iter .unreadByte ()
22
- if iter .cfg .objectFieldMustBeSimpleString {
23
- return string (iter .readObjectFieldAsBytes ())
24
- } else {
25
- field := iter .ReadString ()
26
- c = iter .nextToken ()
27
- if c != ':' {
28
- iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
29
- }
30
- return field
21
+ field := iter .ReadString ()
22
+ c = iter .nextToken ()
23
+ if c != ':' {
24
+ iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
31
25
}
26
+ return field
32
27
}
33
28
if c == '}' {
34
29
return "" // end of object
35
30
}
36
31
iter .ReportError ("ReadObject" , `expect " after {, but found ` + string ([]byte {c }))
37
32
return
38
33
case ',' :
39
- if iter .cfg .objectFieldMustBeSimpleString {
40
- return string (iter .readObjectFieldAsBytes ())
41
- } else {
42
- field := iter .ReadString ()
43
- c = iter .nextToken ()
44
- if c != ':' {
45
- iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
46
- }
47
- return field
34
+ field := iter .ReadString ()
35
+ c = iter .nextToken ()
36
+ if c != ':' {
37
+ iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
48
38
}
39
+ return field
49
40
case '}' :
50
41
return "" // end of object
51
42
default :
@@ -115,36 +106,25 @@ func calcHash(str string) int32 {
115
106
// ReadObjectCB read object with callback, the key is ascii only and field name not copied
116
107
func (iter * Iterator ) ReadObjectCB (callback func (* Iterator , string ) bool ) bool {
117
108
c := iter .nextToken ()
118
- var fieldBytes []byte
119
109
var field string
120
110
if c == '{' {
121
111
c = iter .nextToken ()
122
112
if c == '"' {
123
113
iter .unreadByte ()
124
- if iter .cfg .objectFieldMustBeSimpleString {
125
- fieldBytes = iter .readObjectFieldAsBytes ()
126
- field = * (* string )(unsafe .Pointer (& fieldBytes ))
127
- } else {
128
- field = iter .ReadString ()
129
- c = iter .nextToken ()
130
- if c != ':' {
131
- iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
132
- }
114
+ field = iter .ReadString ()
115
+ c = iter .nextToken ()
116
+ if c != ':' {
117
+ iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
133
118
}
134
119
if ! callback (iter , field ) {
135
120
return false
136
121
}
137
122
c = iter .nextToken ()
138
123
for c == ',' {
139
- if iter .cfg .objectFieldMustBeSimpleString {
140
- fieldBytes = iter .readObjectFieldAsBytes ()
141
- field = * (* string )(unsafe .Pointer (& fieldBytes ))
142
- } else {
143
- field = iter .ReadString ()
144
- c = iter .nextToken ()
145
- if c != ':' {
146
- iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
147
- }
124
+ field = iter .ReadString ()
125
+ c = iter .nextToken ()
126
+ if c != ':' {
127
+ iter .ReportError ("ReadObject" , "expect : after object field, but found " + string ([]byte {c }))
148
128
}
149
129
if ! callback (iter , field ) {
150
130
return false
0 commit comments