我们正试图从SOAP转移到REST,并且我们偶然发现了这个问题 此处派对可以是Individual或Organization类型。JSON和对象继承
样品个XML
<customer>
<details>
<party xsi:type="Individual">
<externalID>ABC123</externalID>
<firstname>John</firstname>
<lastname>Smith</lastname>
</party>
</details>
</customer>
<customer>
<details>
<party xsi:type="Organization">
<externalID>APPLE</externalID>
<organizationName>Apple Inc</organizationName>
<listingName>APPLE</listingName>
</party>
</details>
</customer>
然而,当我们移动到相同的JSON表示,我们会遇到继承信息丢失
JSON样品
{
"customer": {
"details": {
"party": {
"externalID": "ABC123",
"firstname": "John",
"lastname": "Smith"
}
}
}
}
{
"customer": {
"details": {
"party": {
"externalID": "APPLE",
"organizationName": "Apple Inc",
"listingName": "APPLE"
}
}
}
}
所以,这个问题的时候,我们使用像Gson这样的库将JSON转换回Java对象,我们放弃了Individual或Organization的定义。
虽然其中一种解决方法是构建附加服务以检索返回具体类型(个人或组织)的“详细信息”,但是还有其他方法可以在JSON中处理此问题吗?
这似乎是一个重复的问题。我认为这是你正在寻找的东西:http://stackoverflow.com/questions/33627344/equal-of-xsitype-in-json-schema –