gpt4 book ai didi

java - 如何在 Gson 序列化中保持字段顺序

转载 作者:IT老高 更新时间:2023-10-28 12:47:59 41 4
gpt4 key购买 nike

似乎 Gson.toJson(Object object) 生成带有随机分布的对象字段的 JSON 代码。有没有办法以某种方式修复字段顺序?

public class Foo {
public String bar;
public String baz;
public Foo( String bar, String baz ) {
this.bar = bar;
this.baz = baz;
}
}
Gson gson = new Gson();
String jsonRequest = gson.toJson(new Foo("bar","baz"));

字符串jsonRequest可以是:

  • { "bar":"bar", "baz":"baz"}(正确)
  • { "baz":"baz", "bar":"bar"}(顺序错误)

最佳答案

您需要创建一个自定义 JSON 序列化程序。

例如

public class FooJsonSerializer implements JsonSerializer<Foo> {

@Override
public JsonElement serialize(Foo foo, Type type, JsonSerializationContext context) {
JsonObject object = new JsonObject();
object.add("bar", context.serialize(foo.getBar());
object.add("baz", context.serialize(foo.getBaz());
// ...
return object;
}

}

并按如下方式使用:

Gson gson = new GsonBuilder().registerTypeAdapter(Foo.class, new FooJsonSerializer()).create();
String json = gson.toJson(foo);
// ...

这将保持您在序列化程序中指定的顺序。

另见:

关于java - 如何在 Gson 序列化中保持字段顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365851/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com