Comments (4)
For people who stumble upon this issue, see the Gist provided in #205 for a work around.
from jackson-dataformat-xml.
Correct, this problem does result from impedance between XML and JSON.
Another question is whether wrappers for elements were supported: I think structure that works is one without elements; and there is a known issue wrt handling of wrapper vs unwrapped lists.
But Map is pretty specific type, so I wonder if it might be possible to add bit more interaction to make it work.
The way Lists are handled does in fact rely on a somewhat specific low-level method, so it might be possible to add something similar for cases where Map-type content is expected.
from jackson-dataformat-xml.
I am not sure there is generic solution to this problem: your solution assumes that we can use heuristic to combine sub-trees, but this would not be guaranteed for all kinds of structures.
But it could work for some subset of cases; so question then is whether to try to work on something that would work with the standard Map deserializer (which is not format specific), or to add XML-specific Map deserializer.
Latter might make more sense, given that this is "impossible" case for JSON (and in fact I would argue should probably throw an exception so that users do not rely on being able to handle duplicates).
As to XML: there is the immediate problem wherein value of duplicate property may well be something other than another Map; so it is not clear what would be the proper way to merge things. For example:
<data>
<r>A</r>
<r><b>B</b><c>C</c></r>
</data>
would not quite work, as value for entry "r" would be String "A". So what should be done for the following entry?
from jackson-dataformat-xml.
I think the answer here is "works as designed" -- 'untyped' binding to Maps and Lists will not be working correctly without assuming more advanced rules, and I don't want to move to that direction.
Will close the issue as 'wont fix'.
from jackson-dataformat-xml.
Related Issues (20)
- List tags not changing properly HOT 13
- `ArrayIndexOutOfBoundsException` thrown for invalid ending XML string when using JDK default Stax XML parser HOT 2
- Upgrade to 2.16.0 failing with `NoSuchMethodError` for `JavaType.isIterationType()` HOT 4
- If there are HTML tags within XML tags, @JacksonXmlText will assign incorrect values to the content. HOT 7
- Java bean serialization XML encoding problem HOT 1
- Without setting `@JsonCreator` for the POJO, the `required` attribute in `@JsonProperty` is not checked HOT 1
- Disabling wrapper on list (e.g. defaultUseWrapper = false) does not serialize/deserialize null lists as expected HOT 2
- When the `localName` property of `@JacksonXmlProperty` is not set, the `required` of `@JsonProperty` does not detect the property name of POJO HOT 10
- java.lang.IllegalArgumentException: Cannot deserialize value of type `java.util.ArrayList<RetInfArryDTO> from Object value (token `JsonToken.START_OBJECT`) HOT 8
- Add `XmlMapper.createGenerator(XMLStreamWriter)` and `XmlMapper.createParser(XMLStreamReader)` overloads
- Support use of xsi:type for polymorphic deserialization (FromXmlParser.Feature.AUTO_DETECT_XSI_TYPE)
- Support Encoding option when writing XML HOT 1
- `JacksonXmlAnnotationIntrospector.findNamespace()` should properly merge namespace information
- xmlMapper.readValue( xmlString , Bean.class ) for Single Boolean Value does not get the value defaults with false HOT 1
- XML serialization of floating-point infinity is incompatible with JAXB and XML Schema HOT 2
- native compilation error with version 2.17.0 of com.fasterxml.jackson.dataformat:jackson-dataformat-xml HOT 3
- Deserializing fails when using builder classes with `Iterable` Collection setters HOT 11
- Deserialization into collection does not respect namespaces HOT 4
- Cannot construct instance of `PEPSchema.MEMBER` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('Yes1') HOT 8
- Conflicting Getter Definitions for Different List Properties with Same Element as Content (dup of #27) HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jackson-dataformat-xml.