本文介绍了如何在Jackson中解码通用数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我该怎么做:

Test<String> data = OBJECT_MAPPER.decodeValue("sss", Test<String>.class);

当我调用此操作时,我得到一个错误.我需要解码通用类.

When I call this operation I get an error. I need decode generic class.

感谢您的帮助.

推荐答案

您可以使用TypeReference. Test<String>.classJava中是不可能的.

You can use TypeReference. Test<String>.class is not possible in Java.

TypeReference testStringType = new TypeReference<Test<String>>() { };
Object value = mapper.readValue(json, testStringType);

也可以工作:

JavaType javaType = mapper.getTypeFactory().constructParametricType(Test.class, String.class);
Test<String> value1 = mapper.readValue(json, javaType);

另请参阅:

  • Jackson - Deserialize using generic class
  • Jackson - Deserialize Generic class variable

这篇关于如何在Jackson中解码通用数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 07:23