You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
package com.test;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.io.Serializable;
public class Test {
public static void main(String[] args) throws Exception {
char[] chars = new char[2];
chars[0] = 0xffff;
chars[1] = 'A';
String info = new String(chars);
System.out.println(info);
Other other = new Other();
other.setInfo(info);
XmlMapper xmlMapper = new XmlMapper();
String otherXml = xmlMapper.writeValueAsString(other);
System.out.println(otherXml);
Other other1 = xmlMapper.readValue(otherXml, Other.class);
System.out.println(other1.getInfo());
}
@JacksonXmlRootElement(localName = "Other")
public static class Other implements Serializable {
@JacksonXmlProperty(localName = "Info")
private String info;
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
}
running result:
�A
<Other><Info>A</Info></Other>
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Illegal character entity: expansion character (code 0xffff)
at [row,col {unknown-source}]: [1,21]
at [Source: (StringReader); line: 1, column: 22]
at com.fasterxml.jackson.dataformat.xml.util.StaxUtil.throwAsParseException(StaxUtil.java:25)
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser._nextToken(FromXmlParser.java:1460)
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser.nextToken(FromXmlParser.java:746)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:305)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
at com.fasterxml.jackson.dataformat.xml.deser.XmlDeserializationContext.readRootValue(XmlDeserializationContext.java:104)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4931)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3868)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3836)
at com.test.Test.main(Test.java:21)
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0xffff)
at [row,col {unknown-source}]: [1,21]
at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:634)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:504)
at com.ctc.wstx.sr.StreamScanner.reportIllegalChar(StreamScanner.java:2463)
at com.ctc.wstx.sr.StreamScanner.validateChar(StreamScanner.java:2400)
at com.ctc.wstx.sr.StreamScanner.resolveCharEnt(StreamScanner.java:2376)
at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1524)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2838)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122)
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream._collectUntilTag(XmlTokenStream.java:568)
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream._next(XmlTokenStream.java:473)
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream.next(XmlTokenStream.java:313)
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser._nextToken(FromXmlParser.java:1458)
... 8 more
the class Other is provided by other system, we could not add @JacksonXmlCData to it's field info.
so how to avoid JsonParseException when the value of info has unicode characters such as ?
The text was updated successfully, but these errors were encountered:
jackson-dataformat-xml version: 2.18.3
the class Other is provided by other system, we could not add
@JacksonXmlCData
to it's fieldinfo
.so how to avoid JsonParseException when the value of
info
has unicode characters such as
?The text was updated successfully, but these errors were encountered: