Releases: noear/snack3
Releases · noear/snack3
Snack 3.2.65
- 增加 File 类型反序化支持
- 增加泛型多层嵌套支持: List<List>、Map<String,List>
- 增加 NodeAttr 注解对时区的配置支持
- 修复 "{names:null}" 转为 A{names:List} 时, 会变成 A{names:List=[null]} 的问题
- 修复非静态成员类序列化时会死循环的问题
- 添加特性(ParseIntegerUseLong),解析时可让所有整型为长整型
Snack 3.2.59
- 添加漂亮格式化特性支持
Snack 3.2.57
- 增加 selectOrNew() 接口;//只支持简单索引查询时orNew,不支持条件表达式和函数
示例:
@Test
public void case1(){
ONode oNode = new ONode();
oNode.selectOrNew("$.orders[0].price").val(500);
System.out.println(oNode.toJson());
//{"orders":[{"price":500}]}
assert "{\"orders\":[{\"price\":500}]}".equals(oNode.toJson());
oNode.selectOrNew("$.orders[10].price").val(600);
System.out.println(oNode.toJson());
//{"orders":[{"price":500},null,null,null,null,null,null,null,null,null,{"price":600}]}
oNode.select("$.orders").forEach(n->n.asObject());
System.out.println(oNode.toJson());
//{"orders":[{"price":500},{},{},{},{},{},{},{},{},{},{"price":600}]}
}
Snack 3.2.56
- 增加指定 ClassLoader 支持
- 增加 ClassLoader 自动指定能力
- 增加 @NodeAttr 对 LocalTime,LocalDate,LocalDateTime 有效
Snack 3.2.54
- 增加 kotlin data 类支持
Snack 3.2.53
- 增加 getOrNew(int index, ONodeType newNodeType) 接口
- 增加 getOrNew(String key, ONodeType newNodeType) 接口
Snack 3.2.52
- 增加 SerializeNulls 对 Map/nullValue 的控制(之前默认认输出)
- 增加 SerializeMapNullValues 特性
- 增加 BooleanNullAsFalse 特性
- 增加 NumberNullAsZero 特性
- 增加 ArrayNullAsEmpty 特性
- 默认 features_def,不再包括 StringNullAsEmpty(旧的作用,也就只有 OValue::getString 上)
Snack 3.2.50
- ONode 在分析 date str 时,增加 trim() 处理
- 增加新特性 StringDoubleToDecimal (可保持小数不变位数)
- 修复反序列化时空字符转类的异常情况
- rename 时,相同名字则不处理
- 增加 string 转 int 的支持(之前只转 long)
- 增加 任何数字可 转 date 的支持
Snack 3.2.44
- 当类型为 虚拟类 时,支持将 string 自动转换为 object
- 修复实现接口的枚举无法被识别为枚举的问题
- 添加 UUID 输出时,自动转为字符串格式
- 修复反序列化时,只读保合不能被赋值的问题
- 增加特性 StringJsonToNode 对 ONode.loadObj() 的支持
Snack 3.2.39
- 增加 ONode::isUndefined() 接口
- 增加 ONode::exists(jpath)接口
- 调整 当有 key 时,其 null 值统一为 valueType;用于区别 isUndefined
- 修复 jsonpath 出现 ._ 时,会出错的问题
- 当类型为 虚拟类 时,支持将 string 自动转换为 object