1

というクラスがあり、ClassOneゲッター/セッターを持ついくつかのフィールドがあり、そのうちの 1 つは別のクラスのオブジェクトですClassTwo。次のように、FlexJSON を使用してClassOneオブジェクトをシリアル化しようとしています。

public class ClassOne{
    private String name;
    private Long id;
    private ClassTwo classTwo;
    //Getters+Setters omitted for brevity
}

public class ClassTwo{
    private String description;
    //Getter+Setter again omitted
}

//Elsewhere
List<ClassOne> list = /*get a list of ClassOne objects*/;
String json = new JSONSerializer().include("name", "id", "classTwo.description").exclude("*").serialize(list);

私の問題は、結果の JSON が次のようになることです。

[{"id":"1","name":"aName","classTwo":{"description":"aDescription"}},{"id":"2","name":"anotherName","classTwo":{"description":"anotherDescription"}}]

パーツは、JSON 内のclassTwo.description独自の個別のオブジェクトに配置されています。しかし、ClassTwo は本質的に単なる実装の詳細です。結果を次のように平らにしたい:

[{"id":"1","name":"aName","description":"aDescription"},{"id":"2","name":"anotherName","description":"anotherDescription"}]

classOneオブジェクトの表現にフラット化されている限り、「説明」の部分が「classTwo.description」と読めても問題ありません。

FlexJSON でこれを行う方法はありますか? Transformerのものはできるはずですが、私はライブラリに慣れていないため、確信が持てず、方法を理解できません。

4

0 に答える 0