首页 文章

Java到JSON的转换:JSTL与Methodical(Jackson / Gson)

提问于
浏览
0

我是熟悉Java的前端开发人员 . 对于使用有条不紊的转换而不是JSTL将Java对象转换为JSON,我真的很难提升性能和开发的优缺点 .

我知道通过有条不紊的转换,可以使用额外的一层getter / setter类来保证安全性 - 我也有一个非常大的预感,它只是更快,资源更少,但我找不到任何证据 . 我只能找到JSON库之间的比较 .

我需要详细说明的理由:

  • 更严格的安全性 - 我们通过控制JSP中显示的数据来应对

  • 更快,更少开销 - 由于缺乏证据而受到抵制

  • 更容易标准化 - 由于缺乏灵活性而受到抵制

这是我遇到的一些链接(下图) - 除了比较库之外,我真的在寻找一些可靠的研究 . 此外,如果有人能够向我展示 Jackson 提供的OJM映射的一些可靠的例子 - 那将是非常棒的 .

再一次,我知道这是如此通用 - 但我只是在寻找建议和提出的原因,为什么有条理的比使用JSTL更好 .

1 回答

  • 1

    对于性能,根据大多数公共测量,例如JVM Serializers基准测试,Jackson是常用的快速库 . 您可以自己轻松测试,或者谷歌搜索(Android,Java SE的基准测试) .

    Jackson OJM很简单 . 给定对象'ob':

    MyObject ob = ...;
    ObjectMapper mapper = new ObjectMapper(); // always reuse these, expensive to create
    OutputStream out = context.getResponseStream(); // or whateveer
    
    // and then write it out
    mapper.writeValue(out, ob);
    // or read in:
    MyObject ob2 = mapper.readValue(context.getRequestStream(), MyObject.class);
    

    并发症主要来自于处理Java泛型的 MapList (使用 TypeReference );非标准命名约定(使用注释来定义Java属性名称的JSON名称)等 .

    教程存在,例如:

    大多数主要Java框架正在使用或将使用Jackson进行JSON转换:所有JAX-RS实现(Jersey,RESTeasy,CXF),Restlet(2.0),Play(2.0),SpringMVC . 由于效率和可扩展性,它已成为事实上的标准库,后者对于框架来说是最重要的 . 基于Jackson的JSON处理也被发现与“更快”的二进制格式竞争(这意味着在大多数Web服务案例中切换到使用Thrift,Avro或Protobuf几乎没有收获) .

    在替代方案中,GSON也被广泛使用,并且像Jackson一样容易用于数据绑定 .

相关问题