私は JsonDeserializer と JsonSerializer を実装する方法を知っていますが、私がやりたいことは次のとおりです。
これはセットアップです:
public class classA
{
public String a;
public classB clazzB;
}
public class classB
{
public String c;
public String d;
public String e;
public String f;
}
次のようにclassAをシリアル化(およびこれにアナログを逆シリアル化)したい:
- classA をシリアル化するときは、classB の一部もシリアル化する必要があります。たとえば、変数 c と d を指定します。
私はそれを行う方法を知っているので(eとfにトランジェントを使用)、ここにキャッチがあります:
- c と d (classA でシリアル化する必要がある classB の部分) は JSONObject に含めるべきではなく、classA の変数を使用して INLINE で表示する必要があります
本質的に、結果は次のようになります。
{"a":"something","c":"something", "d":"something"}
ここで JsonSerializer で抱えている問題は、classB からシリアル化する必要がある 2 つの変数 (それ以上の可能性もあります) があることです。1 つしかない場合は、変数の JSONPrimitive を返すことができます。serialize メソッドで JsonTreeWriter を使用することを考えていましたが、それができるとは思えません。
これを行う最もエレガントな方法は何ですか?