我是熟悉Java的前端开发人员。我正在努力提高性能和时间。使用有条理的转换与JSTL将Java对象转换为JSON的开发利弊。
我知道通过有条不紊的转换,可以使用额外的一层getter / setter类来保证安全性 - 我也有一个非常大的预感,它只是更快,资源更少,但我找不到任何证据。我只能在JSON库之间找到比较。
我需要详细说明的理由:
以下是我遇到的一些链接(下图) - 除了比较库之外,我真的在寻找一些可靠的研究。此外,如果有人能向我展示杰克逊提供的OJM映射的一些可靠的例子 - 那将是非常棒的。
再次,我知道这是如此通用 - 但我只是在寻找建议和提出的原因,为什么有条理的比使用JSTL更好。
答案 0 :(得分:1)
对于性能,根据大多数公开测量,例如JVM Serializers基准测试,Jackson是常用的快速库。您可以自己轻松测试,或者谷歌搜索(Android,Java SE存在基准)。
杰克逊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);
和并发症主要来自于处理Map
的Java泛型,List
s(使用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一样容易用于数据绑定。