2011-02-24 201 views
2

一個子類我有一個JSON是這樣的:解組與JAXB

objects:[{ 
    id:"p452365", 
    type:"photo", 
    link:"http://xxx.zz" 
}, 
{ 
    id:"v7833", 
    type:"video", 
    link:"http://xxx.yy", 
    length:"4.12" 
} 
] 

在超Entity,還有就是2個實例變量:ID和類型。在我擴展的XmlAdapter類中,我嘗試將我的實體實例轉換爲ex的子類型。 Photo

public HashMap<String, List<Column>> unmarshal(Feeds f) throws Exception { 
     for(Feed feed : f.getFeeds()){ 
      System.out.println("Entity id for feed : " + feed.getId()); 
      for(Entity e:feed.getObjects()){ 
       if (e instanceof Photo){ 
        // Of course it's not 
       } 
      } 
     } 
     return (HashMap<String, List<Column>>)fm.map(f.getFeeds()); 
    } 

當然電子商務不是一個instanceof照片,我花了一槍那裏。:) 我想做的事就是根據JSON.I難怪類型值有時干擾JAXB過程,解組在哪裏以及如何。

回答

0

我以前對類似問題的回答之一可能對此有所幫助。本質上它是在EclipseLink JAXB(MOXy)中使用@XmlDescrimatorNode。請注意我是MOXy的技術主管。

你也可以用XmlAdapter做到這一點。 AdaptedEntity將擁有來自Entity及其子類的所有屬性。

+0

之前,我改變JAXB IMPL,我真的想給第二個選項的回答一個try.Thanks。 – barand

+0

我改變了主意。現在我正在使用MOXY.I將jaxb.properties文件放入我的域類所在的包中。但是我得到這個異常:java.lang.ClassNotFoundException:org.eclipse.persistence.jaxb.JAXBContextFactory.Do you have any idea?Btw我目前正在使用RestEasy。 – barand