将json字符串,转换为对象实体

先说明一下,这个实体中嵌套有多层内部类,json是已经拼好的。

json字符串为:

{"QueryMXASSETDTSResponse":{"rsStart":0,"rsCount":2,"rsTotal":2,"MXASSETDTSSet":{"ASSET":[{"ASSETNUM":"D-1001B","DESCRIPTION":"\u5367\u5f0f\u6c14\u6db2\u5206\u79bb\u5668","SITEID":"AMHSITE1","STATUS":"\u64cd\u4f5c","ASSETSPEC":[{"ALNVALUE":"\u91cd\u529b(\u6c14\u6db2)\u5206\u79bb\u5668","ASSETATTRID":"EQUIPN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u5907\u540d\u79f0","ORGID":"AMHNG"}]},{"ASSETATTRID":"MTN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u578b\u53f7","ORGID":"AMHNG"}]},{"ALNVALUE":"R208084","ASSETATTRID":"SN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u7cfb\u5217\u53f7","ORGID":"AMHNG"}]},{"ALNVALUE":"\u539f\u6599\u6c14","ASSETATTRID":"MEDIUM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4ecb\u8d28\u7c7b\u578b","ORGID":"AMHNG"}]},{"ALNVALUE":"\u5367\u5f0f\u5706\u7b52","ASSETATTRID":"TYPE","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u578b\u5f0f","ORGID":"AMHNG"}]},{"ALNVALUE":"\u542b\u6c14\u6db2\u5206\u79bb\u5143\u4ef6\uff0c\u79ef\u6db2\u5305\uff1b\u6c14\u6db2\u5206\u79bb","ASSETATTRID":"CAP","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u7ed3\u6784\u4e0e\u7528\u9014","ORGID":"AMHNG"}]},{"ALNVALUE":"8.4","ASSETATTRID":"DPR","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u538b\u529b","ORGID":"AMHNG"}]},{"ALNVALUE":"11.33","ASSETATTRID":"TP","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u6d4b\u8bd5\u538b\u529b","ORGID":"AMHNG"}]},{"ALNVALUE":"80","ASSETATTRID":"DTE","LINEARASSETSPECID":0,"MEASUREUNITID":"\u2103","ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u6e29\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"15-35","ASSETATTRID":"WT","LINEARASSETSPECID":0,"MEASUREUNITID":"\u2103","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5de5\u4f5c\u6e29\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"8","ASSETATTRID":"WP","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5de5\u4f5c\u538b\u529b","ORGID":"AMHNG"}]},{"ASSETATTRID":"IND","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5185\u5f84","ORGID":"AMHNG"}]},{"ASSETATTRID":"ED","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5916\u5f84","ORGID":"AMHNG"}]},{"ASSETATTRID":"WAT","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u58c1\u539a","ORGID":"AMHNG"}]},{"ALNVALUE":"20R\n\u6b63\u706b","ASSETATTRID":"BM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4e3b\u4f53\u6750\u6599","ORGID":"AMHNG"}]},{"ALNVALUE":"4","ASSETATTRID":"RL","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8150\u8680\u88d5\u5ea6","ORGID":"AMHNG"}]},{"ASSETATTRID":"HPT","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u4fdd\u6e29\u539a\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"\u805a\u915a\u919b\u677f\u6750","ASSETATTRID":"HPM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4fdd\u6e29\u6750\u6599","ORGID":"AMHNG"}]},{"ASSETATTRID":"AM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u9632\u8150\u63aa\u65bd","ORGID":"AMHNG"}]},{"ALNVALUE":"17.54","ASSETATTRID":"CU","LINEARASSETSPECID":0,"MEASUREUNITID":"M3","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5bb9\u79ef","ORGID":"AMHNG"}]},{"ALNVALUE":"\u4e0a:\u03a61600\u00d772\u00d77044\u4e0b:800\u00d736\u00d77295","ASSETATTRID":"DIM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u89c4\u683c\u5c3a\u5bf8","ORGID":"AMHNG"}]},{"ALNVALUE":"37200","ASSETATTRID":"WEIGHT","LINEARASSETSPECID":0,"MEASUREUNITID":"KG","ASSETATTRIBUTE":[{"DESCRIPTION":"\u91cd\u91cf","ORGID":"AMHNG"}]},{"ALNVALUE":"39783","ASSETATTRID":"MD","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u751f\u4ea7\u65e5\u671f","ORGID":"AMHNG"}]},{"ALNVALUE":"2","ASSETATTRID":"PVE","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u5bb9\u5668\u7c7b\u522b","ORGID":"AMHNG"}]},{"ALNVALUE":"\u4e2d\u56fd\u77f3\u6cb9\u96c6\u56e2\u5de5\u7a0b\u8bbe\u8ba1\u6709\u9650\u8d23\u4efb\u516c\u53f8\u897f\u5357\u5206\u516c\u53f8","ASSETATTRID":"DESIGNER","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u5355\u4f4d","ORGID":"AMHNG"}]},{"ALNVALUE":"\u56db\u5ddd\u77f3\u6cb9\u5929\u7136\u6c14\u5efa\u8bbe\u5de5\u7a0b\u6709\u9650\u8d23\u4efb\u516c\u53f8\uff08\u5bb9\u5668\u5236\u9020\u5382\uff09","ASSETATTRID":"MFRN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u751f\u4ea7\u5382\u5546","ORGID":"AMHNG"}]},{"ASSETATTRID":"VENDORN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4f9b\u8d27\u5546","ORGID":"AMHNG"}]},{"ASSETATTRID":"REMARK","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u5907\u6ce8","ORGID":"AMHNG"}]}]},{"ASSETNUM":"D-1001C","DESCRIPTION":"\u5367\u5f0f\u6c14\u6db2\u5206\u79bb\u5668","SITEID":"AMHSITE1","STATUS":"\u64cd\u4f5c","ASSETSPEC":[{"ALNVALUE":"\u91cd\u529b(\u6c14\u6db2)\u5206\u79bb\u5668","ASSETATTRID":"EQUIPN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u5907\u540d\u79f0","ORGID":"AMHNG"}]},{"ASSETATTRID":"MTN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u578b\u53f7","ORGID":"AMHNG"}]},{"ALNVALUE":"R208081","ASSETATTRID":"SN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u7cfb\u5217\u53f7","ORGID":"AMHNG"}]},{"ALNVALUE":"\u539f\u6599\u6c14","ASSETATTRID":"MEDIUM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4ecb\u8d28\u7c7b\u578b","ORGID":"AMHNG"}]},{"ALNVALUE":"\u5367\u5f0f\u5706\u7b52","ASSETATTRID":"TYPE","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u578b\u5f0f","ORGID":"AMHNG"}]},{"ALNVALUE":"\u542b\u6c14\u6db2\u5206\u79bb\u5143\u4ef6\uff0c\u79ef\u6db2\u5305\uff1b\u6c14\u6db2\u5206\u79bb","ASSETATTRID":"CAP","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u7ed3\u6784\u4e0e\u7528\u9014","ORGID":"AMHNG"}]},{"ALNVALUE":"8.4","ASSETATTRID":"DPR","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u538b\u529b","ORGID":"AMHNG"}]},{"ALNVALUE":"11.33","ASSETATTRID":"TP","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u6d4b\u8bd5\u538b\u529b","ORGID":"AMHNG"}]},{"ALNVALUE":"80","ASSETATTRID":"DTE","LINEARASSETSPECID":0,"MEASUREUNITID":"\u2103","ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u6e29\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"15-35","ASSETATTRID":"WT","LINEARASSETSPECID":0,"MEASUREUNITID":"\u2103","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5de5\u4f5c\u6e29\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"8","ASSETATTRID":"WP","LINEARASSETSPECID":0,"MEASUREUNITID":"MPA","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5de5\u4f5c\u538b\u529b","ORGID":"AMHNG"}]},{"ASSETATTRID":"IND","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5185\u5f84","ORGID":"AMHNG"}]},{"ASSETATTRID":"ED","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5916\u5f84","ORGID":"AMHNG"}]},{"ASSETATTRID":"WAT","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u58c1\u539a","ORGID":"AMHNG"}]},{"ALNVALUE":"20R\n\u6b63\u706b","ASSETATTRID":"BM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4e3b\u4f53\u6750\u6599","ORGID":"AMHNG"}]},{"ALNVALUE":"4","ASSETATTRID":"RL","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8150\u8680\u88d5\u5ea6","ORGID":"AMHNG"}]},{"ASSETATTRID":"HPT","LINEARASSETSPECID":0,"MEASUREUNITID":"MM","ASSETATTRIBUTE":[{"DESCRIPTION":"\u4fdd\u6e29\u539a\u5ea6","ORGID":"AMHNG"}]},{"ALNVALUE":"\u805a\u915a\u919b\u677f\u6750","ASSETATTRID":"HPM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4fdd\u6e29\u6750\u6599","ORGID":"AMHNG"}]},{"ASSETATTRID":"AM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u9632\u8150\u63aa\u65bd","ORGID":"AMHNG"}]},{"ALNVALUE":"17.54","ASSETATTRID":"CU","LINEARASSETSPECID":0,"MEASUREUNITID":"M3","ASSETATTRIBUTE":[{"DESCRIPTION":"\u5bb9\u79ef","ORGID":"AMHNG"}]},{"ALNVALUE":"\u4e0a:\u03a61600\u00d772\u00d77044\u4e0b:800\u00d736\u00d77295","ASSETATTRID":"DIM","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u89c4\u683c\u5c3a\u5bf8","ORGID":"AMHNG"}]},{"ALNVALUE":"37200","ASSETATTRID":"WEIGHT","LINEARASSETSPECID":0,"MEASUREUNITID":"KG","ASSETATTRIBUTE":[{"DESCRIPTION":"\u91cd\u91cf","ORGID":"AMHNG"}]},{"ALNVALUE":"39783","ASSETATTRID":"MD","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u751f\u4ea7\u65e5\u671f","ORGID":"AMHNG"}]},{"ALNVALUE":"2","ASSETATTRID":"PVE","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u5bb9\u5668\u7c7b\u522b","ORGID":"AMHNG"}]},{"ALNVALUE":"\u4e2d\u56fd\u77f3\u6cb9\u96c6\u56e2\u5de5\u7a0b\u8bbe\u8ba1\u6709\u9650\u8d23\u4efb\u516c\u53f8\u897f\u5357\u5206\u516c\u53f8","ASSETATTRID":"DESIGNER","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u8bbe\u8ba1\u5355\u4f4d","ORGID":"AMHNG"}]},{"ALNVALUE":"\u56db\u5ddd\u77f3\u6cb9\u5929\u7136\u6c14\u5efa\u8bbe\u5de5\u7a0b\u6709\u9650\u8d23\u4efb\u516c\u53f8\uff08\u5bb9\u5668\u5236\u9020\u5382\uff09","ASSETATTRID":"MFRN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u751f\u4ea7\u5382\u5546","ORGID":"AMHNG"}]},{"ASSETATTRID":"VENDORN","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u4f9b\u8d27\u5546","ORGID":"AMHNG"}]},{"ASSETATTRID":"REMARK","LINEARASSETSPECID":0,"ASSETATTRIBUTE":[{"DESCRIPTION":"\u5907\u6ce8","ORGID":"AMHNG"}]}]}]}}}

将要转换为的实体:

package cn.jasgroup.amudraya.domain;

import java.util.List;

import net.sf.json.JSONArray;

import  cn.jasgroup.amudraya.base.commons.utils.JsonUtil;

public  class EquipRemoteData {
	
private QueryMxassetDtsResponse querymxassetdtsresponse;

public QueryMxassetDtsResponse getQuerymxassetdtsresponse() {
	return querymxassetdtsresponse;
}

public void setQuerymxassetdtsresponse(
		QueryMxassetDtsResponse querymxassetdtsresponse) {
	this.querymxassetdtsresponse = querymxassetdtsresponse;
}

/**  **/
public static class QueryMxassetDtsResponse{
	private  String rsstart="";
	private  String rscount="";
	private String rstotal="";
	private Mxassetdtsset mxassetdtsset;
	
	
	public String getRsstart() {
		return rsstart;
	}


	public void setRsstart(String rsstart) {
		this.rsstart = rsstart.toUpperCase();
	}


	public String getRscount() {
		return rscount;
	}


	public void setRscount(String rscount) {
		this.rscount = rscount.toUpperCase();
	}


	public String getRstotal() {
		return rstotal;
	}


	public void setRstotal(String rstotal) {
		this.rstotal = rstotal.toUpperCase();
	}


	public Mxassetdtsset getMxassetdtsset() {
		return mxassetdtsset;
	}


	public void setMxassetdtsset(Mxassetdtsset mxassetdtsset) {
		this.mxassetdtsset = mxassetdtsset;
	}


	/**  **/
	public static class Mxassetdtsset{
	   private List<Asset> asset;
	   
	   
	   public Mxassetdtsset() {
		super();
	  }
       
	public List<Asset> getAsset() {
		return asset;
	}

	@SuppressWarnings("unchecked")
	public void setAsset(List<Asset> asset) {
		System.out.println(JSONArray.fromObject(asset).toString());
		this.asset=JsonUtil.getDTOList(JSONArray.fromObject(asset).toString(),Asset.class);
	}

	/**  **/
	public  static class Asset{
		  private String assetnum="";
          private String location="";
		  private String description="";
		  private String siteid="";
		  private String status="";
		  private List<Assetspec> assetspec;
		 
		
		public String getAssetnum() {
			return assetnum;
		}


		public void setAssetnum(String assetnum) {
			this.assetnum = assetnum.toUpperCase();
		}


		public String getDescription() {
			return description.toUpperCase();
		}


		public void setDescription(String description) {
			this.description = description.toUpperCase();
		}


		public String getSiteid() {
			return siteid;
		}


		public void setSiteid(String siteid) {
			this.siteid = siteid.toUpperCase();
		}


		public String getStatus() {
			return status;
		}


		public void setStatus(String status) {
			this.status = status.toUpperCase();
		}


		public List<Assetspec> getAssetspec() {
			return assetspec;
		}


		@SuppressWarnings("unchecked")
		public void setAssetspec(List<Assetspec> assetspec) {
			this.assetspec=JsonUtil.getDTOList(JSONArray.fromObject(assetspec).toString(),Assetspec.class);
		}
        

		public String getLocation() {
			return location;
		}


		public void setLocation(String location) {
			this.location = location;
		}


		/**  **/
		public  static class Assetspec{
			  private String alnvalue="";
			  private String assetattrid="";
			  private String linearassetspecid="";
			  private String measureunitid;
			  private List<Assetattribute> assetattribute;
			  
			  
			public String getMeasureunitid() {
				return measureunitid;
			}

			public void setMeasureunitid(String measureunitid) {
				this.measureunitid = measureunitid;
			}

			public String getAlnvalue() {
				return alnvalue;
			}

			public void setAlnvalue(String alnvalue) {
				this.alnvalue = alnvalue.toUpperCase();
			}

			public String getAssetattrid() {
				return assetattrid;
			}

			public void setAssetattrid(String assetattrid) {
				this.assetattrid = assetattrid.toUpperCase();
			}

			public String getLinearassetspecid() {
				return linearassetspecid;
			}

			public void setLinearassetspecid(String linearassetspecid) {
				this.linearassetspecid = linearassetspecid.toUpperCase();
			}
            

			public List<Assetattribute> getAssetattribute() {
				return assetattribute;
			}

			public void setAssetattribute(List<Assetattribute> assetattribute) {
				this.assetattribute=JsonUtil.getDTOList(JSONArray.fromObject(assetattribute).toString(),Assetattribute.class);
			}


			/**  **/
			public  static class Assetattribute{
				  private String description="";
				  private String orgid="";
				public String getDescription() {
					return description;
				}
				public void setDescription(String description) {
					this.description = description.toUpperCase();
				}
				public String getOrgid() {
					return orgid;
				}
				public void setOrgid(String orgid) {
					this.orgid = orgid.toUpperCase();
				}
			
				
			  }
		   }
	   }
	   
	 }
 }
}

 Json转实体的常用方法(工具类JsonUtil):

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;

public class JsonUtil {      
     
    /**页面传至后台时,json数据在request的参数名称*/     
    public final static String JSON_ATTRIBUTE = "json";      
    public final static String JSON_ATTRIBUTE1 = "json1";      
    public final static String JSON_ATTRIBUTE2 = "json2";      
    public final static String JSON_ATTRIBUTE3 = "json3";      
    public final static String JSON_ATTRIBUTE4 = "json4";      
          
    /**    
     * 从一个JSON 对象字符格式中得到一个java对象,形如:    
     * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}    
     * @param object    
     * @param clazz    
     * @return    
     */     
    public static Object getDTO(String jsonString, Class clazz){      //这里仅用到了这一个方法  
        JSONObject jsonObject = null;      
        try{      
            setDataFormat2JAVA();       
            jsonObject = JSONObject.fromObject(jsonString);      
        }catch(Exception e){      
            e.printStackTrace();      
        }      
        return JSONObject.toBean(jsonObject, clazz);      
    }      
          
    /**    
     * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:    
     * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},    
     * beansList:[{}, {}, ...]}    
     * @param jsonString    
     * @param clazz    
     * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)    
     * @return    
     */     
    public static Object getDTO(String jsonString, Class clazz, Map map){           
   JSONObject jsonObject = null; try{ setDataFormat2JAVA(); jsonObject = JSONObject.fromObject(jsonString); }catch(Exception e){ e.printStackTrace(); } return JSONObject.toBean(jsonObject, clazz, map); }
/** * 从一个JSON数组得到一个java对象数组,形如: * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] * @param object * @param clazz * @return */ public static Object[] getDTOArray(String jsonString, Class clazz){ setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for(int i = 0; i < array.size(); i++){ JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz); } return obj; } /** * 从一个JSON数组得到一个java对象数组,形如: * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] * @param object * @param clazz * @param map * @return */ public static Object[] getDTOArray(String jsonString, Class clazz, Map map){ setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for(int i = 0; i < array.size(); i++){ JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz, map); } return obj; } /** * 从一个JSON数组得到一个java对象集合 * @param object * @param clazz * @return */ public static List getDTOList(String jsonString, Class clazz){ setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for(Iterator iter = array.iterator(); iter.hasNext();){ JSONObject jsonObject = (JSONObject)iter.next(); list.add(JSONObject.toBean(jsonObject, clazz)); } return list; } /** * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性 * @param object * @param clazz * @param map 集合属性的类型 * @return */ public static List getDTOList(String jsonString, Class clazz, Map map){ setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for(Iterator iter = array.iterator(); iter.hasNext();){ JSONObject jsonObject = (JSONObject)iter.next(); list.add(JSONObject.toBean(jsonObject, clazz, map)); } return list; } /** * 从json HASH表达式中获取一个map,该map支持嵌套功能 * 形如:{"id" : "johncon", "name" : "小强"} * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap * @param object * @return */ public static Map getMapFromJson(String jsonString) { setDataFormat2JAVA(); JSONObject jsonObject = JSONObject.fromObject(jsonString); Map map = new HashMap(); for(Iterator iter = jsonObject.keys(); iter.hasNext();){ String key = (String)iter.next(); map.put(key, jsonObject.get(key)); } return map; } /** * 从json数组中得到相应java数组 * json形如:["123", "456"] * @param jsonString * @return */ public static Object[] getObjectArrayFromJson(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray(); } /** * 把数据对象转换成json字符串 * DTO对象形如:{"id" : idValue, "name" : nameValue, ...} * 数组对象形如:[{}, {}, {}, ...] * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...} * @param object * @return */ /*public static String getJSONString(Object object) throws Exception{ String jsonString = null; //日期值处理器 JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor()); if(object != null){ if(object instanceof Collection || object instanceof Object[]){ jsonString = JSONArray.fromObject(object, jsonConfig).toString(); }else{ jsonString = JSONObject.fromObject(object, jsonConfig).toString(); } } return jsonString == null ? "{}" : jsonString; } */ private static void setDataFormat2JAVA(){ //设定日期转换格式 JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"})); } public static void main(String[] arg) throws Exception{ String s = "{status : 'success'}"; // System.out.println(" object : " + JsonUtil.getJSONString(s)); String mode1S="{id:'ada',name:'asdfa',addr:'asdfadfadsfadsf'}"; // Model1 model1=(Model1)JsonUtil.getDTO(mode1S, Model1.class); // System.out.println(model1.toString()); // // String model2S="{id:'ada',name:'asdfa',addr:'asdfadfadsfadsf',model3:{id:'12',name:'name',addr:'addr'}}"; // Model2 model2=(Model2)JsonUtil.getDTO(model2S, Model2.class); // System.out.println(model2.toString()); } }

 

在测试类中,应该这样写:

  String equipJson = //Json字符串;

   equipJson=equipJson.toLowerCase();
   EquipRemoteData equipRemoteData=(EquipRemoteData) JsonUtil.getDTO(equipJson,new EquipRemoteData().getClass());
   List<Asset> lsAsset=equipRemoteData.getQuerymxassetdtsresponse().getMxassetdtsset().getAsset();

 

到这里就算转换结束了。

 

这里的所有代码都非我所写,是摘录别人的。

 


  

转载于:https://www.cnblogs.com/qlong8807/archive/2013/03/14/2959149.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值