本文目錄一覽:
非常複雜的一個json串,怎麼轉成java對象?
1、可藉助開源組件FastJson或者Jackson。
2、自己動手
a、使用反射獲取對象所有的setter方法以及對於所需的參數類型用map對應
b、循環上訴集合,依次使用反射調用set方法,並使用正則匹配json串中的值,可以使用class.getDeclareFileds();獲取變量名,注意若參數是class類型需要反射為實例後填充,class類型匹配json串是也需要注意,因為可能存在嵌套對象中變量名一致的情況。展示部分代碼如下:
3、綜合分析還是建議使用中間件來進行映射。可參考Jackson示例
用java怎麼解析複雜的JSON
json-lib-2.4-jdk15.jar 這個包還另需一下幾個包。
jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6
把上邊的json定義為一個字符串 str,建議不要直接用還是自己動手寫寫。這樣比較容易掌握方法。
JSONObject ob=JSONObject.fromObject(str);
Object success=ob.get(“success”);
Object errorMsg=ob.get(“errorMsg”);
System.out.println(success);
System.out.println(errorMsg);
JSONObject data=ob.getJSONObject(“data”);
Object total=data.get(“total”);
System.out.println(total);
JSONArray array=data.getJSONArray(“rows”);
JSONObject rows=null;
for(int i=0;iarray.size();i++){
rows=array.getJSONObject(i);
Object id=rows.get(“id”);
System.out.println(id);
Object workName=rows.get(“workName”);
System.out.println(workName);
Object assigneeName=rows.get(“assigneeName”);
System.out.println(assigneeName);
Object name=rows.get(“name”);
System.out.println(name);
Object processInstanceInitiatorName=rows.get(“processInstanceInitiatorName”);
System.out.println(processInstanceInitiatorName);
Object processInstanceStartTime=rows.get(“processInstanceStartTime”);
System.out.println(processInstanceStartTime);
Object createTime=rows.get(“createTime”);
System.out.println(createTime);
Object dueDate=rows.get(“dueDate”);
System.out.println(dueDate);
}
怎樣利用java生成json複雜對象
1利用:json-lib-2.2.3-jdk13.jar 2使用方法舉例: JSONObject.fromObject(bean).toString() –返回{“aa”: “xx”,”bb”:”xxx”} (bean為java對象,有aa和bb兩個字段,值分別為xx 和 xxx) JSONObject.fromObject(map).toString() — 返回{“aa”: “xx”…
原創文章,作者:PWQO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139828.html