File tree Expand file tree Collapse file tree 5 files changed +14
-6
lines changed
snack4-test/src/test/java/features/snack4
snack4/src/main/java/org/noear/snack4 Expand file tree Collapse file tree 5 files changed +14
-6
lines changed Original file line number Diff line number Diff line change 55* 添加 ONodeCreator 静态方法的支持(普通类)
66* 添加 ONodeAttr: ignore 注解属性支持
77* 添加 Write_BooleanAsNumber 新特性
8+ * 添加 Read_UseBigDecimalMode 新特性
9+ * 添加 Read_UseBigIntegerMode 新特性
810* 添加 DecodeContext: hasFeature , EncodeContext: hasFeature 新特性
911* 完善 Write_Nulls 对 Map 输出的控制
1012* 优化 Write_BrowserCompatible 写入性能
13+ *
1114
1215### 4.0.0
1316
Original file line number Diff line number Diff line change @@ -129,7 +129,7 @@ public void Read_UseBigNumberMode() {
129129 System .out .println (data .get ("a" ).getClass ());
130130 Assertions .assertEquals (Integer .class , data .get ("a" ).getClass ());
131131
132- data = ONode .ofJson (json , Feature .Read_UseBigNumberMode ).toBean ();
132+ data = ONode .ofJson (json , Feature .Read_UseBigIntegerMode ).toBean ();
133133 System .out .println (data .get ("a" ).getClass ());
134134 Assertions .assertEquals (BigInteger .class , data .get ("a" ).getClass ());
135135 }
Original file line number Diff line number Diff line change @@ -137,7 +137,7 @@ public void test8() {
137137 @ Test
138138 public void test9 () {
139139 String json = "{\" a\" :0.0000}" ;
140- String json2 = ONode .ofJson (json , Feature .Read_UseBigNumberMode ).toJson ();
140+ String json2 = ONode .ofJson (json , Feature .Read_UseBigDecimalMode ).toJson ();
141141
142142 Assertions .assertEquals (json , json2 );
143143 }
Original file line number Diff line number Diff line change @@ -78,9 +78,14 @@ public enum Feature {
7878 Read_AllowUnescapedControlCharacters ,
7979
8080 /**
81- * 读取大数字时使用字符串模式 (避免精度丢失),用 BigDecimal 替代 Double, 用 BigInteger 替代 Long
81+ * 读取使用大数字模式 (避免精度丢失),用 BigDecimal 替代 Double,
8282 */
83- Read_UseBigNumberMode ,
83+ Read_UseBigDecimalMode ,
84+
85+ /**
86+ * 读取使用大整型模式,用 BigInteger 替代 Long
87+ * */
88+ Read_UseBigIntegerMode ,
8489
8590 /**
8691 * 读取时允许使用获取器
Original file line number Diff line number Diff line change @@ -501,13 +501,13 @@ private Number parseNumber() throws IOException {
501501 return Long .parseLong (numStr );
502502 } else {
503503 if (numStr .indexOf ('.' ) >= 0 || numStr .indexOf ('e' ) >= 0 || numStr .indexOf ('E' ) >= 0 ) {
504- if (numStr .length () > 19 || opts .hasFeature (Feature .Read_UseBigNumberMode )) {
504+ if (numStr .length () > 19 || opts .hasFeature (Feature .Read_UseBigDecimalMode )) {
505505 return new BigDecimal (numStr );
506506 } else {
507507 return Double .parseDouble (numStr );
508508 }
509509 } else {
510- if (numStr .length () > 19 || opts .hasFeature (Feature .Read_UseBigNumberMode )) {
510+ if (numStr .length () > 19 || opts .hasFeature (Feature .Read_UseBigIntegerMode )) {
511511 return new BigInteger (numStr );
512512 } else {
513513 long longVal = Long .parseLong (numStr );
You can’t perform that action at this time.
0 commit comments