Snack3 3.2 发布,轻量的 Json+Jsonpath 框架

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Snack3 是一个轻量的 JSON + Jsonpath 框架。 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何...

Snack3 是一个轻量的 JSON + Jsonpath 框架。

借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。

  • 强调文档树的操控和构建能力
  • 做为中间媒体,方便不同格式互转
  • 高性能Json path查询(兼容性和性能很赞)
  • 支持序列化、反序列化
  • 基于 无参构造函数 + 字段 操作实现(反序列化时不会有触发危险动作的风险)
<dependency>
  <groupId>org.noear</groupId>
  <artifactId>snack3</artifactId>
  <version>3.2.7</version>
</dependency>

本次累计更新:

  • 增加自定义编码与解码支持
public class DemoTest {
    public void test(UserDto user) {
        Options options = Options.def();
        options.addEncoder(Date.class, (data, node)->{
            node.val().setNumber(data.getTimes());
        });
        
        ONode oNode = ONode.loadObj(user, options);
    }
}
  • 增加 @ONodeAttr 注解,取代旧的 @NodeName
public class UserModel {
    public int id;
    @ONodeAttr(serialize = false)
    public String name;
    @ONodeAttr(deserialize = false)
    public String note;
    @ONodeAttr(format = "yyyyMMdd")
    public Date date;
}
  • 增加更复杂的泛型传导
@lombok.Data
public class Data<X> {
    private List<X> content;
    private X obj;
    private int pageNum;
    private int pageSize;
    private int totalElements;
    private int pages;
}

@lombok.Data
public class House {
    private String sn;
    private String dver_type;
    private String data_status;
    private String created_by;
    private String updated_by;
    private String updated_date;
}

@lombok.Data
public class Result<T> {
    private int code;
    private Data<T> data;
}


Result<House> result = ONode.deserialize(json, new Result<House>() {}.getClass());
  • 增加对成员类的反序列化支持
public class Server {
    public static class One{
        public int id;
        public String name;
    }
}

Server.One one = ONode.deserialize(json, Server.One.class);
  • 增加接口 ONode::getRawString()
  • 增加接口 ONode::getRawNumber()
  • 增加接口 ONode::getRawBoolean()
  • 增加接口 ONode::getRawDate()
  • 增加接口 Options::getFeatures()
  • 增加接口 ONode::options(ops->...);
  • 调整接口 ONode::get(key) ,不再自动为文档树添加节点;如有需要改用 ONode::getOrNew(key)
  • 等等

 


以上所述就是小编给大家介绍的《Snack3 3.2 发布,轻量的 Json+Jsonpath 框架》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

重来2

重来2

[美] 贾森·弗里德、[美] 戴维·海涅迈尔·汉森 / 苏西 / 中信出版社 / 2014-4-8 / 39.00元

“不再需要办公室”,这不仅仅是未来才有的事——它已经发生了。现在,轮到你迈开脚步,跟上时代的步伐了。 上百万的员工和成千上万的企业已经发现了远程工作的乐趣和好处。然而,远程工作方式还没有成为常见的选择。事实上,远程工作的技术手段都已齐备。还没有升级换代的,是人们的思想。 这本书的目的就是帮你把想法升级换代。作者会向你展示远程工作的诸多好处:可以找到最优秀的人才,从摧残灵魂的通勤路上解脱......一起来看看 《重来2》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具