Skip to content

Commit d6914ea

Browse files
authoredJun 23, 2017
Update java-features.cn.md
1 parent 18caa33 commit d6914ea

File tree

1 file changed

+1
-13
lines changed

1 file changed

+1
-13
lines changed
 

‎java-features.cn.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ String[] array = JsonIterator.deserialize(input).get("numbers", 2).to(String[].c
114114
```java
115115
JsonIterator.setMode(DecodingMode.DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH);
116116
JsonStream.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
143142
JsonIterator.setMode(DecodingMode.REFLECTION_MODE);
144-
JsoniterAnnotationSupport.enable();
145143
```
146144

147145
所有的特性在反射模式下都是支持的,只是比代码生成的要慢一点。但是还是比其他的解决方案快很多,这里是一个简单的对象多字段绑定的性能评测:
@@ -230,7 +228,6 @@ public class DemoCodegenConfig implements CodegenConfig {
230228
```java
231229
JsonStream.setMode(EncodingMode.STATIC_MODE);
232230
JsonIterator.setMode(DecodingMode.STATIC_MODE); // set mode before using
233-
JsoniterAnnotationSupport.enable();
234231
JsonIterator.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();
378368
return iter.read(TestObject.class);
379369
```
380370

@@ -515,7 +505,6 @@ public static class TestObject {
515505
如果 `field1` 没有出现在 json 文档里,异常会被抛出。
516506

517507
```java
518-
JsoniterAnnotationSupport.enable();
519508
JsonIterator iter = JsonIterator.parse("{'field2':101}".replace('\'', '"'));
520509
return iter.read(TestObject.class);
521510
```
@@ -560,7 +549,6 @@ public static class TestObject2 {
560549
把 `asExtraForUnknownProperties` 设置为 true 之后,多余的字段出现的话就会报错。当然还是要开启 annotation 的支持
561550

562551
```java
563-
JsoniterAnnotationSupport.enable();
564552
JsonItertor iter = JsonIterator.parse("{'field1':101,'field2':101,'field3':101}".replace('\'', '"').getBytes());
565553
return iter.read(TestObject2.class);
566554
```

0 commit comments

Comments
 (0)
Please sign in to comment.