2

基本的に、オブジェクトを XML または JSON 文字列表現との間で変換するためのインターフェイスが必要です。

public interface IStringifier{

/**
   Converts the Object to it's String representation, e.g. XML or JSON
*/
   public String toString(Object o);

/**
   Converts from the String representation (e.g. XML or JSON) to an Object
*/
   public Object fromString(String s, Class<?> clazz);
}

このようなインターフェースは、GSON や XStream などで実装するのはかなり簡単ですが、それを抽象化することで、その下で何が起こっているのかを知ることから抽象化されます。また、多くの XML または JSON ライブラリの 1 つから切り離されているため、クライアントはより自由にお気に入りを選択できます。

このための「標準」Javaインターフェースはありますか? Guava、Apacheなどの何か?


(追加)私が本当に望んでいた答えはありませんでした(「はい、javax.obscure.interfacesにあなたが望むものがあります」)が、返信に感謝します。トムの答えを最も有益で挑発的なものとして受け入れます。そして、おそらく、私が持っているコードをクリーンアップして、標準を作成しようとします. :-)

4

4 に答える 4

3

JAXB (JSR-222)は、オブジェクトを XML との間で変換するための Java SE/EE 標準です。スタンドアロンで使用でき、JAX-WS (SOAP) および JAX-RS (RESTful) Web サービスの標準バインディング レイヤーです。jaxb.properties以下は、ファイルを介して代替プロバイダーを指定する例へのリンク

現在、JSON バインディング用の標準 API はありません。

于 2012-12-11T00:28:31.317 に答える
1

XML と JSON は無関係なので、実際には次の 2 つの質問があります。

JSON の場合、「非公式」ですが、人気のあるライブラリはGSONです。

XML については、Blaise の回答を参照してください。

于 2012-12-11T00:42:28.027 に答える
1

あなたはこれを考えすぎていると思います。オブジェクトを に変換することは実際には気にしませんStrings。その形式が何であるかを知らなくても、オブジェクトをさまざまな形式にシリアル化できるようにしたいと考えています。しかし、別の形式が文字列であると誰が言いますか? オブジェクトをプロトコル バッファとして使用できるようにしたい場合はどうなりますか? これはバイナリ形式であり、文字形式ではありstringify()ません - そこでは役に立ちません。最終的に、これらの詳細から可能な限り独立したアプリケーションを設計するのは、開発者次第です。

于 2012-12-11T00:48:40.720 に答える
0

人気のあるJSONからJavaへのバインディングライブラリの1つはJacksonです 。人気のあるXMLからJavaへのバインディングライブラリの1つはXStreamです。

これをWebアプリケーションで使用する場合は、Spring3MVCの機能を検討することをお勧めします。アノテーションを介して自動的に変換を行い、XMLまたはJSON(または他のさまざまな形式)が必要かどうかを判断できます。これもあなたが探している共通のインターフェースかもしれません。

于 2012-12-11T01:07:14.487 に答える