0

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

我知道通过有条不紊的转换,可以使用额外的 getter/setter 类来保证安全性——而且我有一个非常强烈的预感,即它的速度更快,资源消耗更少,但我找不到任何证据。我只能找到 JSON 库之间的比较。

我需要详细说明的原因:

  • 更严格的安全性 - 通过我们控制在 JSP 中显示的数据来应对
  • 更快,更少的开销 - 因缺乏证据而反击
  • 更容易标准化 - 缺乏灵活性

这是我遇到的一些链接(下)-我真的在寻找一些可靠的研究,而不是库的比较。此外,如果有人可以向我展示杰克逊提供的 OJM 映射的一些可靠示例,那就太棒了。

再一次,我知道这太通用了——但我只是在寻找建议和提出的理由,说明为什么有条不紊比使用 JSTL 更好。

4

1 回答 1

1

就性能而言,Jackson 是最常用的库,根据大多数公共测量,例如JVM Serializers基准。您可以自己轻松地测试它,也可以通过 Google 进行测试(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);

复杂性主要来自对Maps, Lists (use TypeReference) 的 Java 泛型的处理;非标准命名约定(使用注释为 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 一样易于用于数据绑定。

于 2012-09-19T21:28:37.653 回答