如何使用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;
    }
}