我目前遇到了常规JsonBuilder的问题:我试图序列化的对象的属性以看似随机的顺序出现.
这是对象的类:
class Game {
String title
String gameImg2
String description
}
Run Code Online (Sandbox Code Playgroud)
这是我一直在使用的代码:
def game = new Game(title: "a game", gameImg2: "an image", description: "desc")
def json = new JsonBuilder(game)
Run Code Online (Sandbox Code Playgroud)
从这个我希望输出是:
{"title":"a game","gameImg2":"an image", "description":"desc"}
Run Code Online (Sandbox Code Playgroud)
但相反,我得到:
{"gameImg2":"gameImg","title":"hello","description":"desc"}.
Run Code Online (Sandbox Code Playgroud)
从查看JsonBuilder示例代码看,应该维护顺序,实际上,看起来toJson方法迭代于object.properties,这是一个LinkedHashMap.我原以为这将按照它们在类中声明的顺序遍历属性.
我最好的猜测是,这与我对游戏对象的初始化有关 - 可以使用Map语法以某种方式分配属性,但同样,这似乎创建了一个应该保留顺序的LinkedHashMap.
有没有人知道我可能做错了什么或错误地假设在这里?任何线索都将是一个很大的帮助!