gpt4 book ai didi

java - Genson 可以处理对象上的通用嵌套字段吗?

转载 作者:行者123 更新时间:2023-12-02 07:17:50 24 4
gpt4 key购买 nike

基本上,我有一些 Java 对象,我希望将它们序列化为 JSON,并尽可能减少头痛。现在我使用 Tomcat、Jersey 和 Genson。

我发现这样的东西对 Genson 不起作用(当然,这是一个玩具示例):

public class Main {
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.mapOfSets = new HashMap<>();
Set<String> set0 = new HashSet<>();
set0.add("0");
Set<String> set1 = new HashSet<>();
set1.add("1");
set1.add("11");
Set<String> set2 = new HashSet<>();
set2.add("2");
set2.add("22");
set2.add("222");
mc.mapOfSets.put("set0", set0);
mc.mapOfSets.put("set1", set1);
mc.mapOfSets.put("set2", set2);
try {
String json1 = new Genson().serialize(mc.mapOfSets);
System.out.println(json1);
String json = new Genson().serialize(mc);
System.out.println(json);
} catch (TransformationException | IOException e) {
e.printStackTrace();
}
}
}

class MyClass {
public Map<String, Set<String>> mapOfSets;
}

上面的输出是这样的:

{"set1":["1","11"],"set0":["0"],"set2":["2","222","22"]}
{"mapOfSets":{"empty":false}}

Genson 的优点是我只需将它放在我的 WebContent 文件夹中即可使用它,而不是与 Jersey 捆绑的任何内容 - 不需要额外的配置。如果有一种非常直接的方法来获取像上面这样的对象序列化为 JSON,而不必为每个模式编写某种转换器,我很乐意将其与 Jersey 而不是 Genson 一起使用,但 Genson 并没有让我失望缺点还很远。

那么 - 我如何按摩 Genson 以正确序列化 - 或者什么是可以轻松处理此类事情的库?

谢谢!

最佳答案

我是 Gensons 的作者。我刚刚检查过,这是一个错误,泛型在 Genson 中工作正常,除了这种特殊情况......如果您可以等到明天,我将在今晚推出一个新版本,其中包含修复程序和一些小的新功能。完成后我会更新我的答案。

编辑错误已更正,并将版本 0.94 推送到公共(public) Maven 存储库,它应该最多在几个小时内可用。以下是一些 changes in this release 。请尝试一下并确认是否可以解决您的问题。谢谢:)

关于java - Genson 可以处理对象上的通用嵌套字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14698055/

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