如何使用Rest模板在XML中解组CDATA字段
这个问题我已经讨论了好几个小时了,我似乎找不到任何能解决我问题的文章 因此,我试图存储在我创建的对象中调用如何使用Rest模板在XML中解组CDATA字段,xml,unmarshalling,resttemplate,cdata,Xml,Unmarshalling,Resttemplate,Cdata,这个问题我已经讨论了好几个小时了,我似乎找不到任何能解决我问题的文章 因此,我试图存储在我创建的对象中调用getForObject时响应的XML 下面是我试图存储在对象中以将其映射出来的XML响应 <?xml version="1.0" encoding="UTF-8"?> <data contentType="text/plain;charset=ISO-8859-1" contentLength="138"> <!
getForObject
时响应的XML
下面是我试图存储在对象中以将其映射出来的XML响应
<?xml version="1.0" encoding="UTF-8"?>
<data contentType="text/plain;charset=ISO-8859-1" contentLength="138">
<!
[CDATA[[
{
"categoryCode":"Exp Prtnr Def",
"code":"EXP",
"value":"30",
"version":1,
"effectiveStartDate":"17-02-2017",
"effectiveEndDate":"02-12-2290"
}
]]]
>
</data>
这是我的JSONMapper
类
public class JSONMapper implements Serializable
{
private static final long serialVersionUID = 1L;
private String data;
public JSONMapper()
{
}
public JSONMapper(String data)
{
this.data = data;
}
public String getData()
{
return data;
}
public void setData(String data)
{
this.data = data;
}
}
当我尝试运行代码时,它会生成此错误
线程“main”中出现异常org.springframework.http.converter.httpMessageNodeTableException:无法读取文档:无法反序列化com.org.mappers.JSONMapper的实例,因为启动\u数组令牌不足 在[来源:java.io。PushbackInputStream@22d9d;行:1,列:1];嵌套的异常为com.fasterxml.jackson.databind.JsonMappingException:无法反序列化scom.org.mappers.JSONMapper的实例,超出START\u数组标记 在[来源:java.io。PushbackInputStream@22d9d;行:1,列:1] 位于org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:228) 位于org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:213) 位于org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:95) 位于org.springframework.web.client.restemplate.doExecute(restemplate.java:622) 位于org.springframework.web.client.restemplate.execute(restemplate.java:580) 位于org.springframework.web.client.restemplate.getForObject(restemplate.java:287) 位于sg.gov.ntp.tx.uve.controller.test.main(test.java:13) 由以下原因引起:com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.org.mappers.JSONMapper的实例超出START\u数组标记 如果我错了,请纠正我,但我将数据字段设置为
string
,因为我已经了解到CDATA
属于string
类型
我想补充一点,当我尝试restTemplate.getForEntity(…)时,它返回一个空正文,并且似乎无法获取CDATA字段
我不知道为什么会这样。有人能帮我解决这个问题吗
非常感谢 我不知道resttemplate,但为什么要使用jackson和jsonmapper?您尝试对xml进行解组,对吗?使用jaxb!我刚刚被告知我们需要使用JSON响应。我现在需要做的是获取CDATA字段,因为打印时仍然会得到一个空的响应正文
public class JSONMapper implements Serializable
{
private static final long serialVersionUID = 1L;
private String data;
public JSONMapper()
{
}
public JSONMapper(String data)
{
this.data = data;
}
public String getData()
{
return data;
}
public void setData(String data)
{
this.data = data;
}
}