0

Java バックエンドを備えた Tomcat サーバーで複数の Web サービスを実行しています。サービスの 1 つが他のサービスの 1 つにクエリを実行すると、ペイロードが 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 と比較して高速になりますか?

ペイロードはネットワーク経由で転送されることに注意してください。このアプローチのいずれかがネットワーク転送時間に影響を与えますか?

4

1 に答える 1

0

理論的には、どちらの方法でも同じ時間がかかります。どちらも JSON 文字列をオブジェクト グラフに変換する必要があります。ただし、私の経験では、フレームワークからオブジェクトを取得する方が、自分でやろうとするよりもはるかに高速です。(Jersey 1.17 を使用、Jackson、Jaxb/Json 変換なし)

于 2013-09-17T12:19:38.843 に答える