現在、Groovy JsonBuilderに問題があります。シリアル化しようとしているオブジェクトのプロパティは、一見ランダムな順序で出てきます。
オブジェクトのクラスは次のとおりです。
class Game {
String title
String gameImg2
String description
}
そして、これは私が使用しているコードです:
def game = new Game(title: "a game", gameImg2: "an image", description: "desc")
def json = new JsonBuilder(game)
これから、出力は次のようになると思います。
{"title":"a game","gameImg2":"an image", "description":"desc"}
しかし、代わりに、私は得ています:
{"gameImg2":"gameImg","title":"hello","description":"desc"}.
JsonBuilderのサンプルコードを見ると、順序を維持する必要があるようです。実際、toJsonメソッドはLinkedHashMapであるobject.propertiesを反復処理しているように見えます。これは、クラスで宣言されている順序でプロパティを通過すると思いました。
私の推測では、これはゲームオブジェクトの初期化と関係があります。マップ構文を使用してプロパティを何らかの方法で割り当てることができますが、これも、順序を保持するLinkedHashMapを作成するようです。
誰かが私がここで間違ってまたは間違って仮定した可能性があることのインクリングを持っていますか?どんなリードも大きな助けになるでしょう!