1

シナリオを持っています。Web サービスにリクエストを送信し、XML レスポンスを取得します。json.lib の XML クラスを使用して、XML を JSON に変換しました。Web サービスから応答を取得するまでの時間は 7 秒で、解析には約 4 ~ 8 秒かかります。あとは、JSON を必要な形式に解析するだけです。

例:XML変換後のJSON

{"Response":{"Response":{"type" : [{1,2,3}]},"value":[{100,200,300}]}}

このJSONを以下の形式に変換しています

[{"type":1,"value":100},{"type":2,"value":200},{"type":3,"value":300}]

問題は、JSON -> JSON のこの特定の変換には非常に多くの時間がかかることです。そのため、15 秒以内に結果を表示するのではなく、約 25 秒かかります。最悪の部分は、JSON が少し大きい場合、時間がかかることです。 90秒まで。これを速くするにはどうすればよいか教えていただけますか?

JSON 解析に Spring 3.0 + Tomcat 6.0.29 + json.lib を使用しています。

更新しました :

XMLをJSONに変換するために使用しているコード。

JSONObject ResponseObj = XML.toJSONObject(elementToString.getelementToString((Element)Responses.item(0)));
4

3 に答える 3

1

まず、なぜ json-to-json なのか? それは必要ですか、それとも「あればいい」ですか?

問題はオブジェクトの作成にあると思います。まず、xml を DOM に解析して多数のオブジェクトを作成し、次に xml->json 変換用に新しいオブジェクト ツリーを作成する必要があります。次に、別のオブジェクト ツリーを作成します。 json->json 変換。また、オブジェクトの作成は、Java で実行できる最もコストのかかる操作の 1 つです。

すべてのオブジェクトの作成を防ぐには、SAX for XML やJson SimpleJackson for JSON などのイベント駆動型の xml および json 処理を調べます。

しかし、もちろん、XML SAX スタイルを処理し、すべての変換をスキップすることが、最も迅速な解決策となります。

于 2012-09-04T15:51:40.353 に答える
0

これを投稿してから1年以上経ちましたが、誰かがまったく同じシナリオに直面した場合に備えて、この質問を解決策で閉じる必要があると感じました!

だから私がしたことは、JSONを解析し、それをそのままHTMLページに送信することだけでした.lodashプラグインを使って好きなようにデータの解析を行いました! はるかに高速で、フロントエンドで変換が行われたため、5 ごとに 5 のように解析されたときにデータを表示し、高速に感じました。それが役に立てば幸い!

于 2016-01-25T08:20:07.803 に答える
0

xstreamの json パーサーで速度をテストできます。一般xstreamに、XML の場合は非常に高速なプル解析を使用します (プル解析は before と同じ考え方です- afterとJava StAXの新しい標準)。JavaSAXDOM

を使用していたときは、Java オブジェクトへxstreamの解析JSONが目立たなくなりました (ブラウザが組み込まれた RCP アプリケーション)。

于 2012-09-04T15:31:25.610 に答える