@@ -114,7 +114,6 @@ String[] array = JsonIterator.deserialize(input).get("numbers", 2).to(String[].c
114114``` java
115115JsonIterator . setMode(DecodingMode . DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH );
116116JsonStream . setMode(EncodingMode . DYNAMIC_MODE );
117- JsoniterAnnotationSupport . enable();
118117```
119118
120119所有的功能应该都能正常工作的,而且要快很多
@@ -141,7 +140,6 @@ return iter.read(TestObject.class); // will use reflection
141140
142141``` java
143142JsonIterator . setMode(DecodingMode . REFLECTION_MODE );
144- JsoniterAnnotationSupport . enable();
145143```
146144
147145所有的特性在反射模式下都是支持的,只是比代码生成的要慢一点。但是还是比其他的解决方案快很多,这里是一个简单的对象多字段绑定的性能评测:
@@ -230,7 +228,6 @@ public class DemoCodegenConfig implements CodegenConfig {
230228``` java
231229JsonStream . setMode(EncodingMode . STATIC_MODE );
232230JsonIterator . setMode(DecodingMode . STATIC_MODE ); // set mode before using
233- JsoniterAnnotationSupport . enable();
234231JsonIterator . deserialize(...
235232```
236233
@@ -322,13 +319,7 @@ public class TestObject {
322319
323320** binding**
324321
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 版本无法通过反射获得参数名。
332323`@JsonCreator ` 不仅仅支持构造函数,静态函数充当工厂方法也是可以的。
333324
334325## Setter 绑定
@@ -374,7 +365,6 @@ public static class TestObject {
374365```
375366
376367```java
377- JsoniterAnnotationSupport . enable();
378368return iter. read(TestObject . class);
379369```
380370
@@ -515,7 +505,6 @@ public static class TestObject {
515505如果 `field1` 没有出现在 json 文档里,异常会被抛出。
516506
517507```java
518- JsoniterAnnotationSupport . enable();
519508JsonIterator iter = JsonIterator . parse(" {'field2':101}" . replace(' \' ' , ' "' ));
520509return iter. read(TestObject . class);
521510```
@@ -560,7 +549,6 @@ public static class TestObject2 {
560549把 `asExtraForUnknownProperties` 设置为 true 之后,多余的字段出现的话就会报错。当然还是要开启 annotation 的支持
561550
562551```java
563- JsoniterAnnotationSupport . enable();
564552JsonItertor iter = JsonIterator . parse(" {'field1':101,'field2':101,'field3':101}" . replace(' \' ' , ' "' ). getBytes());
565553return iter. read(TestObject2 . class);
566554```
0 commit comments