0

私は Java に精通したフロントエンド開発者です。JavaオブジェクトをJSONに変換するための方法論的変換とJSTLを使用するためのパフォーマンスと開発の長所/短所を引き出すのに本当に苦労しています。

方法論的変換では、getter/setter クラスの追加レイヤーをセキュリティに使用できることを知っています。また、全体的に高速でリソースの消費が少ないという非常に大きな予感がありますが、証拠は見つかりません。JSON ライブラリ間の比較しか見つかりません。

詳しく説明する必要がある理由:

  • より厳格なセキュリティ - JSP に表示されるデータを制御することで対抗
  • より速く、より少ないオーバーヘッド - 証拠の欠如による反論
  • より簡単に標準化 - 柔軟性の欠如によって打ち消される

ここに私が遭遇したいくつかのリンクがあります(以下)-ライブラリの比較以外の確かな研究を本当に探しています。また、Jackson が提供する OJM マッピングの確かな例を誰かに見せてもらえれば、それは素晴らしいことです。

繰り返しますが、これは非常に一般的なものであることはわかっていますが、JSTL を使用するよりも方法論の方が優れている理由を提案し、提案しただけです。

4

1 に答える 1

1

パフォーマンスに関しては、 JVM シリアライザーベンチマークなどのほとんどの公開測定によると、Jackson は一般的に使用される高速ライブラリです。これは自分で簡単にテストすることも、Google でヒットをテストすることもできます (ベンチマークは Android、Java SE に存在します)。

Jackson 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複雑さは、ほとんどの場合、s、 s のJava ジェネリックの処理List(使用TypeReference) から生じます。非標準の命名規則 (注釈を使用して Java プロパティ名の JSON 名を定義する) など。

チュートリアルが存在します。たとえば、次のとおりです。

すべての JAX-RS 実装 (Jersey、RESTeasy、CXF)、Restlet (2.0)、Play (2.0)、SpringMVC。効率性と拡張性の両方により、事実上の標準ライブラリになりました。後者は、フレームワークにとって最も重要です。Jackson ベースの JSON 処理は、「より高速な」バイナリ形式と有利に競合することもわかっています (つまり、ほとんどの Web サービスの場合、Thrift、Avro、または Protobuf を使用するように切り替えてもほとんどメリットがありません)。

代替手段として、GSON も広く使用されており、Jackson と同じくらい簡単にデータバインディングに使用できます。

于 2012-09-19T21:28:37.653 に答える