@@ -114,7 +114,6 @@ String[] array = JsonIterator.deserialize(input).get("numbers", 2).to(String[].c
114
114
``` java
115
115
JsonIterator . setMode(DecodingMode . DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH );
116
116
JsonStream . setMode(EncodingMode . DYNAMIC_MODE );
117
- JsoniterAnnotationSupport . enable();
118
117
```
119
118
120
119
所有的功能应该都能正常工作的,而且要快很多
@@ -141,7 +140,6 @@ return iter.read(TestObject.class); // will use reflection
141
140
142
141
``` java
143
142
JsonIterator . setMode(DecodingMode . REFLECTION_MODE );
144
- JsoniterAnnotationSupport . enable();
145
143
```
146
144
147
145
所有的特性在反射模式下都是支持的,只是比代码生成的要慢一点。但是还是比其他的解决方案快很多,这里是一个简单的对象多字段绑定的性能评测:
@@ -230,7 +228,6 @@ public class DemoCodegenConfig implements CodegenConfig {
230
228
``` java
231
229
JsonStream . setMode(EncodingMode . STATIC_MODE );
232
230
JsonIterator . setMode(DecodingMode . STATIC_MODE ); // set mode before using
233
- JsoniterAnnotationSupport . enable();
234
231
JsonIterator . deserialize(...
235
232
```
236
233
@@ -322,13 +319,7 @@ public class TestObject {
322
319
323
320
** binding**
324
321
325
- 需要把类添加上 jsoniter 的 annotation,然后开始 annotation 的支持。如果你已经在使用 jackson 的 annotation,也可以开启 JacksonAnnotationSupport 的兼容模式。必须把参数用 `@JsonProperty ` 标记,因为旧的 java 版本无法通过反射获得参数名。
326
-
327
- ```java
328
- JacksonAnnotationSupport . enable(); // use JsoniterAnnotationSupport if you are not using Jackson
329
- return iter. read(TestObject . class);
330
- ```
331
-
322
+ 必须把参数用 `@JsonProperty ` 标记,因为旧的 java 版本无法通过反射获得参数名。
332
323
`@JsonCreator ` 不仅仅支持构造函数,静态函数充当工厂方法也是可以的。
333
324
334
325
## Setter 绑定
@@ -374,7 +365,6 @@ public static class TestObject {
374
365
```
375
366
376
367
```java
377
- JsoniterAnnotationSupport . enable();
378
368
return iter. read(TestObject . class);
379
369
```
380
370
@@ -515,7 +505,6 @@ public static class TestObject {
515
505
如果 `field1` 没有出现在 json 文档里,异常会被抛出。
516
506
517
507
```java
518
- JsoniterAnnotationSupport . enable();
519
508
JsonIterator iter = JsonIterator . parse(" {'field2':101}" . replace(' \' ' , ' "' ));
520
509
return iter. read(TestObject . class);
521
510
```
@@ -560,7 +549,6 @@ public static class TestObject2 {
560
549
把 `asExtraForUnknownProperties` 设置为 true 之后,多余的字段出现的话就会报错。当然还是要开启 annotation 的支持
561
550
562
551
```java
563
- JsoniterAnnotationSupport . enable();
564
552
JsonItertor iter = JsonIterator . parse(" {'field1':101,'field2':101,'field3':101}" . replace(' \' ' , ' "' ). getBytes());
565
553
return iter. read(TestObject2 . class);
566
554
```
0 commit comments