0

私はjsonをどこにでも吐き出すサービスに取り組んでいます。ただし、私が使用するプロバイダーの 1 つはXMLシリアライゼーション形式として使用するため、同じインターフェイスを使用して解析 (および吐き出す) できるようにしたいと考えてJSONXMLます。

XML問題は、コンストラクターを簡単にオーバーライドできる型またはオブジェクトがわからないことです。私のポイントを明確にすることを望んで、ここにいくつかのコードがあります:

public class JsonData {
    private Hashtable<String, Variant> map = new Hashtable<String, Variant>();

    public JsonData() {
    }

    public JsonData(String jsonString) {
        this.deserialize(jsonString);
    }

理想的には、3 番目のコンストラクターに次のようなことをさせたいと考えています。

    public JsonData(XMLString jsonString) {
        this.xmldeserialize(jsonString);
    }

関連する両方のコンストラクターがプレーン文字列を引数として取る方法に注意してください。

ポインターはありますか?

4

2 に答える 2

3

静的メソッドを使用して、json または xml 文字列からオブジェクトを作成できます。

public static JsonData fromJson(String json) {
    JsonData data = new JsonData();
    data.deserializeJson(json);
    return data;
}

public static JsonData fromXml(String xml) {
    JsonData data = new JsonData();
    data.deserializeXml(xml);
    return data;
}
于 2013-01-15T13:29:58.197 に答える
1

入力がjsonまたはxml(正規表現を使用)であるかどうかを確認し、適切なメソッドを呼び出して逆シリアル化することはできませんか。お気に入り

public JsonData(String jsonString) {
   if(isValidJson(jsonString){
        this.deserialize(jsonString);
   } else {
        this.xmldeserialize(jsonString);
   }
}
于 2013-01-15T13:38:11.087 に答える