将对象作为JSON发送与已定义类的对象一起发送

时间:2013-09-17 10:18:25

标签: java json

我在使用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中那样花费与手动解析相同的时间。

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

1 个答案:

答案 0 :(得分:0)

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