我們正試圖從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 –