问题描述
我正在呼叫REST服务,该服务向我提供了javax.ws.rs.core.Response。此响应的媒体类型为'application / json',我尝试在此响应上使用readEntity,因此可以从中获取Java对象。 我得到的JSON是具有多个属性的对象,以及另一个具有多个属性的JSON对象。为此,我创建了两个带注释的java类,如下所示:
A级:
@XmlRootElement(name="")
@XmlType
@XmlAccessorType(XmlAccesstype.FIELD)
public class ClassA {
@XmlElement(name = "AttributeA")
private int attributeA;
@XmlElement(name = "AttributeB")
private String attributeB;
@XmlElement(name = "AttributeC")
private int attributeC;
@XmlElement(name = "JSONResult")
private ClassB jsonResult;
public ClassA() {
super();
}
}
B级:
@XmlRootElement(name = "")
@XmlType
@XmlAccessorType(XmlAccesstype.FIELD)
public class ClassB {
@XmlElement(name = "AttributeD")
private String attributeD;
@XmlElement(name = "AttributeE")
private XMLGregorianCalendar attributeE;
public ClassB() {
super();
}
}
然后我像这样继续读取实体:
ClassA classA = response.readEntity(ClassA.class);
此代码编译并运行无任何错误。来自ClassA的所有属性均已正确读取并写入对象。但是,对于ClassB(ClassA的属性“ jsonResult”),似乎仅调用了构造函数。换句话说,ClassA具有一个ClassB类型的jsonResult,但是jsonResult的所有属性都是“空”。
我跑步时
String classA = response.readEntity(String.class);
为了分析响应,我得到以下字符串:
{
"AttributeA": 12345,"AttributeB": "Thanks for helping","AttributeC": 678910,"JSONResult": "{\"AttributeD\":\"I really appreciate it\",\"AttributeE\":\"2017-01-12 - 2027-01-23\"}",}
如何正确读取第二个对象?我如何接收第二个对象是否存在问题,例如因为那里所有的转义字符串?
提前谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)