我使用javatuples,因为我必须从几个方法调用中返回多个参数。
一切似乎都很好,直到我试图将jsonString转换为Triplet。看起来元组类(Triplet等)没有无参数构造函数,所以Jackson无法实现。
我的代码大致如下-
String json = """{"size":3,"value0":["dataPoint1", "dataPoint2"],"value1":["dataPoint3"],"value2":["dataPoint2", "dataPoint3"]}""";
Triplet<List<String>, List<String>, List<String>> serviceResponse = objectMapper.readValue(json, new TypeReference<>(){});
我得到的例外是-
无法构造org.javatuples.Triplet
的示例(不存在创建者,如默认构造函数):无法从对象值反序列化(没有基于委托或属性的创建者)
**我还有其他工作吗?**我的实际数据非常庞大,因此我的情况需要荒漠化方法。是否有任何Jackson配置等,可以解决这个问题。
我想一个自定义的JSON编译器可能会有帮助。但其他简单的解决方案也很受欢迎。
2条答案
按热度按时间xqk2d5yq1#
根据我的研究,你不能在Jackson中配置这个。在我看来,你最好的解决方案是使用
Custom JsonDeserializer
,正如你已经知道的。根据你的例子,我是这样做的:
pw136qt22#
JSON对象似乎Map到
为什么不把它变成这个物体呢?