我想在GSON中创建一个自定义的序列化器,在一个对象中插入键/值对,而不是一个新对象。
class Car {
@Expose
String model;
@Expose
Manufacturer manufacturer;
}
class Manufacturer {
@Expose
String name;
@Expose
String from;
}
我想得到一个如下的JSON:
"car":{
"model":"beatle",
"manufacturer":"volkswagen",
"country":"Germany"
}
但无论我如何编写序列化程序,它都坚持在“car”内部创建一个制造商对象
"manufacturer":{
"name":"volkswagen",
"country":"Germany"
}
我该如何解决这个问题,只获取键/值对?
我不能对类做有意义的修改,因为它们Map了数据库。这只是一个模拟我的问题的例子。
3条答案
按热度按时间f87krz0w1#
使用自定义序列化程序应该会有所帮助。
请参阅:https://sites.google.com/site/gson/gson-user-guide/#TOC-Custom-Serialization-and-Deserialization
7y4bm7vi2#
您应该为
Car
类定义自己的serializer和deserializer,这将避免只是以琐碎的方式序列化复合类,但将呈现您所需要的内容。这一点也不难,比如你可以定义
请记住,您需要按照文档中的说明注册序列化程序。
11dmarpk3#
我不可能用JsonSerializer做我想做的。我只能用GSON 2.1(TypeAdapter类)以来的新API让它正常工作。