4

私はJavaで次のクラスを持っています。異なる PC 間で移動できる共通のファイル形式に保存できるようにしたいと考えています。オブジェクトのシリアル化については知っていますが、他のオプションとは何か、それぞれの長所と短所は何なのか疑問に思っていました。ありがとう!たとえば、シリアル化されたファイルは人間が読めないため、短所です。

public class NervousSystem {
    private CentralNervousSystem CNS;
    private PeripheralNervousSystem PNS;

    public NervousSystem(Neocortex neocortex, LateralGeniculateNucleus LGN, Retina retina) {
        this.CNS = new CentralNervousSystem(neocortex, LGN);
        this.PNS = new PeripheralNervousSystem(retina);
    }

    public CentralNervousSystem getCNS() {
        return this.CNS;
    }

    public PeripheralNervousSystem getPNS() {
        return this.PNS;
    }
}
4

5 に答える 5

8

Jacksonなどを使用してオブジェクトをJSONにシリアル化できます。これにより、人間の可読性が大幅に向上します。

于 2013-06-12T03:19:53.417 に答える
5

Jsonの場合、 GSONを使用 ...

任意の複雑なオブジェクトをサポートし、セッターやゲッターは必要ありません。Gsonはそれをすべて理解しています。

JSON に変換

Gson gson = new Gson();
String myObjectJson = gson.toJson( myObj);
println myObjectJson 

JSON から変換

MyObj obj = gson.fromJson(myObjectJson, MyObj.class)
于 2013-06-12T03:59:27.787 に答える
1

JAXB は、アノテーションに従ってオブジェクトをマーシャリングおよびアンマーシャリングします。注釈を使用すると、次のことができます。

  • シリアル化形式を制御します。
  • コードの一部のリファクタリングからシリアライゼーション形式を隔離します。
  • シリアル化から除外するフィールドを特定します。

JAXB に関する Oracle チュートリアルを次に示します。

たとえば、注釈付きのクラスは次のようになります。

@XmlRootElement(name="foo")
@XmlAccessorType(XmlAccessType.FIELD)
public class Foo {

    @XmlTransient
    private String m_temp; 

    @XmlAttribute(name="fieldA")
    private String fieldA;

    ...
}
于 2013-06-12T03:44:10.423 に答える