0

我在具有 Java 后端的 Tomcat 服务器上运行了多个 Web 服务。当其中一项服务从其他服务之一查询某些内容时,它会将有效负载作为 JSON 字符串返回。现在我需要解析它并获取我需要的信息。我使用 json.org 提供的 JSON 库

我想问的是,如果我在两个服务中都有一个模板类(我只具有属性及其 get/setter 的类)作为库类,然后将有效负载作为对象传递,将会更快(处理)那个类的,然后通过类型转换接受它到那个对象。

WebResource localWebResource = localClient.resource(url);
ClientResponse localClientResponse = (ClientResponse) localWebResource
    .accept(new String[] { "application/json" }).get(ClientResponse.class);

//Scenario 1 - accept it as String 
String jsonString = (String) localClientResponse.getEntity(String.class);
MyObject myObj = parseJson(jsonString);

//场景 2 - 接受它作为 'MyObject' 的对象

MyObject myObj = (MyObject) localClientResponse.getEntity(MyObject.class);

使用场景 2,与场景 1 相比,它会更快吗?在场景 2 中转换为“MyObject”,编译器会花费与场景 1 中手动解析相同的时间吗?

请注意,有效负载是通过网络传输的。这两种方法中的任何一种都会对网络传输时间产生影响吗?

4

1 回答 1

0

理论上,这两种方法都需要相同的时间。他们都必须将 JSON 字符串转换为对象图。但是,我的经验是从框架中获取对象比自己尝试要快得多。(使用 Jersey 1.17,没有 Jackson、Jaxb/Json 转换)

于 2013-09-17T12:19:38.843 回答