假设我有以下java枚举:
@AllArgsConstructor
public enum Code {
Code1("Short text 1", "Long text 1"),
Code2("Short text 2", "Long text 2");
private final String shorttext;
private final String longtext;
}
那么 System.out.println(JsonbBuilder.create().toJson(Code.Code1))
将导致 ""Code1"
. 我希望得到以下结果:
{
"shorttext": "Short text 1",
"longtext": "Long text 1"
}
有没有一个舒适的方法来实现这一点?我能用什么注解吗?还是强制实现自定义适配器?
顺便说一句: org.json.JSONObject
默认情况下,结果为所需格式。
2条答案
按热度按时间disho6za1#
我对json-b不是很熟悉,但似乎您需要编写一个序列化程序,如下所述:http://json-b.net/docs/user-guide.html#serializersdeserializers
它可能与
Customer
举例说明。比如:bihw5rsg2#
你可以用它
Map
,如下所示:输出:
{"longtext":"Long text 1","shorttext":"Short text 1"}
此外,您还需要添加@Getter
给你的Code enum