2011-02-24 10 views
2

とサブクラスに私はこのようなJSON何かしました:idと入力します。アンマーシャリングJAXB

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

スーパーEntityでは、2つのインスタンス変数をそこにいます。拡張されたXmlAdapterクラスでは、Entityインスタンスをexのサブタイプにキャストしようとしました。もちろんEの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は写真ではありません。:) 私は何をしたいことは、いつかJAXBプロセスを妨害することで、JSON.Iの不思議にタイプの値に応じてアンマーシャリングどこでどのように。

答えて

0

似たような質問に対する以前の回答の1つが、ここで役立ちます。基本的に、EclipseLink JAXB(MOXy)で@XmlDescrimatorNodeを使用しています。私はMOXyのテクニカルリードです。

またXmlAdapterのでこれを行うことができます。 AdaptedEntityはEntityのすべてのプロパティを持ち、それはサブクラスです。

+0

私はJAXBのIMPLを変更する前に、私は本当に第二の選択肢に答えためtry.Thanksを与えるしたいと思います。 – barand

+0

私は心を変えました。今はMOXyと一緒に働いています.jaxb.propertiesファイルを自分のドメインクラスがあるパッケージに入れます。しかし、私はこの例外を取得しています:java.lang.ClassNotFoundException:org.eclipse.persistence.jaxb.JAXBContextFactory.Doあなたは何か考えている?Btw私は現在RestEasyを使用しています。 – barand

関連する問題