How to map dynamic JSON in JAX-RS(如何在JAX-RS中映射动态JSON)
本文介绍了如何在JAX-RS中映射动态JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须使用JAX-RS(RESTEasy作为实现)将JSON映射到Java PoJO。问题是,JSON是动态的。请看这个例子:
{
"typeCode": "SAMPLE",
"data": [
{
"id": "COMMENTS",
"answerValue": {
"type": "YesNoAnswer",
"value": true
}
},
{
"id": "CHOICE",
"answerValue": {
"type": "SelectListAnswer",
"values": ["choice1", "choice2"]
}
}
]
}
动态元素在数据数组中。原则上,每个条目都有一个ID和一个swerValue。但AnswerValue是动态的。根据他的类型,他可以具有单个值(布尔值、字符串、对对象进行编号)或一组值。
如何将其映射到我的Java模型?
推荐答案
感谢他的解决方案@Henrik。在执行他的建议时,我发现了一个不同的解决方案,这个方案更适合我。 我只是使用JsonSubTypes Annotation来处理继承。 这是我的例子:
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = YesNoAnswer.class, name = "YesNoAnswer"),
@JsonSubTypes.Type(value = SelectListAnswer.class, name="SelectListAnswer"),
@JsonSubTypes.Type(value = SelectAddressAnswer.class, name="SelectAddressAnswer")})
abstract class RequestFormAnswer {
private String type;
}
这篇关于如何在JAX-RS中映射动态JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:如何在JAX-RS中映射动态JSON


基础教程推荐
猜你喜欢
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- Struts2 URL 无法访问 2022-01-01