2017-02-21 6 views
1

サーバーからの応答として文字列が取得されています。私はその文字列をXStreamを使ってjava pojosに変換したい。私のフィールドの一部には、名前にコロンが付いています。 @XStreamAlias(S:Envelope)XstreamAliasingでコロンを使用した例外

解析中、「CannotResolveClassException:Envelope」というエラーが表示されます。しかし、私が使用する場合

@XStreamAlias(Envelope) 

それは正常に動作します。 Xstreamにフィールド名にコロン( ":")を許可する方法を教えてください。私にとって

答えて

0

その作品:

import java.io.InputStream; 

import org.junit.Test; 

import com.thoughtworks.xstream.XStream; 
import com.thoughtworks.xstream.annotations.XStreamAlias; 
import com.thoughtworks.xstream.annotations.XStreamAsAttribute; 

import lombok.Data; 


public class ColonAlias { 

    @Test 
    public void smokeTest() { 
     InputStream file = ColonAlias.class.getResourceAsStream(ColonAlias.class.getSimpleName()+ ".xml"); 
     XStream xStream = new XStream(); 
     xStream.ignoreUnknownElements(); 
     xStream.processAnnotations(Parent.class); 

     Parent parent = (Parent) xStream.fromXML(file); 

     System.out.println(parent); 
    } 

    @XStreamAlias("parent") 
    @Data 
    public class Parent { 

     @XStreamAsAttribute 
     private String name; 

     @XStreamAlias("p:age") 
     private String age; 
    } 
} 

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<parent name="Adam"> 
     <p:age>33</p:age> 
</parent> 

出力:

ColonAlias.Parent(name=Adam, age=33) 
関連する問題