2016-04-24 7 views
2

Struts 2プロジェクトでは、オブジェクトをシリアライズおよびデシリアライズする必要があります。要件は非常に簡単なので、gsonではなくStruts 2 JSONUtilを使用します。 deserializationについてはStruts 2組み込みのJSONユーティリティクラスの使用

import org.apache.struts2.json; 

String json = JSONUtil.serialize(myAccountVO); 
// return: {"accountNumber":"0105069413007","amount":"1500","balance":"215000"} 

、我々はclass cast exception

AccountVO vo =(AccountVO) JSONUtil.deserialize(json); 
    //Exception 

に直面している私はdeserializationは、オブジェクトのプロパティのキー値を持つマップを返しますことを見つけます。だから私は、として実行する必要があります。

HashMap<String,String> map = (HashMap) JSONUtil.deserialize(string) 
accountVo.setAccountNumber(map.get("accountNumber")); 
.... 

まあ、私はそれをよりよく行うことができますか私は、このユーティリティからあまり期待しています。

答えて

2

JSONを逆シリアル化した後は、JSONPopulatorを使用してマップからBeanプロパティを設定できます。例えば。

JSONPopulator populator = new JSONPopulator(); 
AccountVO vo = new AccountVO(); 
populator.populateObject(vo, map); 
関連する問題