0
我把这个xml格式作为不同http请求的输出。将类的类型绑定到元素的动态方式
<transaction>
<respmsg>...</respmsg>
<respcode>0000</respcode>
<status>success</status>
</transaction>
下面是我的交易类表示
@root
class Transaction {
@Element
public ResponseMessage respmsg;
@Element
public int respcode;
@Element
public String status;
}
的 “respmsg” 属性
abstract class ResponseMessage {
}
的抽象类,表示这是相当容易的映射到一个类的对象。然而“respmsg”是用于登录请求每个请求 不同的respmsg可能是
<respmsg>
<firstname>John</firstname>
<lastname>Doe</lastname>
<mobilephone>1234</mobilephone>
<email>[email protected]</email>
</respmsg>
class LoginResponseMessage extends ResponseMessage {
@Element
public String firstname;
@Element
public String lastname;
@Element
public String mobilephone;
@Element
public String email;
}
和位置要求可能是
<respmsg>
<address1>121 121 UAE Bldg, dubai</address1>
<address2/>
<city>Dubai</city>
<postalcode>121</postalcode>
<region>dubai</region>
</respmsg>
class LocationResponseMessage extends ResponseMessage {
@Element
public String address1;
@Element
public String address2;
@Element
public String postalcode;
@Element
public String region;
}
如何设计我的类,以便它知道什么类型在解序列化过程中用于respmsg的类?
String xmlData = retrieve(urls[0]); //retrieve fetches the string xml from the http request
Serializer serializer = new Persister();
Reader reader = new StringReader(xmlData);
Transaction t = serializer.read(Transaction.class, reader, false);
什么添加属性到''说明标签哪种类型是? –
azz
例如:'' –
azz
Hi Der Flatulaor感谢您的评论。是的,我确实从String xmlData向插入了一个属性。 String xmlData = retrieve(urls [0]); int respmsgIndex = xmlData.indexOf(“”); xmlData = xmlData.replaceFirst(“”,“”); 谢谢你的帮助。如果可以的话,我会将你的评论标记为答案。非常感激! –
Lian