【转】JSON字符串与Java对象的相互转换

注意:本文中代码使用时所有的“《”需转换为左括号,“》”需转换为右括号
所用Java包:json-lib
Maven代码:
 《dependency》
  《groupId》net.sf.json-lib《/groupId》
  《artifactId》json-lib《/artifactId》
  《version》2.4《/version》
  《classifier》jdk15《/classifier》
 《/dependency》

如果有类定义为:
public class CollectionCircleMessage {
 
 private Integer messageId;
 
 private String userId;
 
 private String nickname;
 
 private String portrait;
 
 private RudderMessage rudderMessage;
 
 private List《CollectionUserComment》 rudderCircleComments;
 
 private List《CollectionUserAttention》 rudderAttention;
}


1.将Java对象(JSONObject)转换为Json字符串
JSONObject.fromObject(collectionCircleMessage).toString();


2.将Java对象列表(JSONArray)转换为Json字符串
JSONArray.fromObject(collectionCircleMessage).toString();


3.将Json字符串转换为Java对象
JSONObject jSONObject = JSONObject.fromObject(jsonString);
CollectionCircleMessage collectionCircleMessagesList = (CollectionCircleMessage)JSONObject.toBean(jSONObject, CollectionCircleMessage.class);

如果有复杂对象:
JSONObject jSONObject = JSONObject.fromObject(jsonString);
Map《String, Class》 classMap = new HashMap《String, Class》();
classMap.put("rudderCircleComments", CollectionUserComment.class);
classMap.put("rudderAttention", CollectionUserAttention.class);
CollectionCircleMessage collectionCircleMessages = (CollectionCircleMessage)JSONObject.toBean(jSONObject, CollectionCircleMessage.class,classMap);

否则会出现
 net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX的错误


4.将Json字符串转换为Java对象列表
JSONArray jsonArray = JSONArray.fromObject(jsonString);
List《CollectionCircleMessage》 collectionCircleMessagesList = (List《CollectionCircleMessage》)JSONArray.toCollection(jsonArray, CollectionCircleMessage.class);

如果有复杂对象:
JSONArray jsonArray = JSONArray.fromObject(jsonString);
Map《String, Class》 classMap = new HashMap《String, Class》();
classMap.put("rudderCircleComments", CollectionUserComment.class);
classMap.put("rudderAttention", CollectionUserAttention.class);
List《CollectionCircleMessage》 collectionCircleMessagesList = (List《CollectionCircleMessage》)JSONArray.toList(jsonArray, CollectionCircleMessage.class,classMap);

否则会出现
 net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX的错误

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值