1. 怎樣利用java生成json復雜對象
假設你後台中查出一個結果集List,你就可以通過如下方法實現:
JSONObject json = new JSONObject();
json.accumulate("list", list);
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(json);
response.getWriter().close();
這樣生成的json對象就可以傳到頁面上了,在頁面中你可以通過如下方式取值:
$.ajax(
url:"",
type:"post",
data:{"param1":param1},
success:function(data){
//此處就是你取值的方法
var list = data.list;
}
);
2. java 遞歸替換復雜對象屬性值
本示例中又三個對象嵌套:
UserBO:復雜對象,其中一個屬性是List<AddressBO>或者Map<AddressBO>
AddressBO:其中一個屬性是SubAddressBO
SubAddressBO:包含目標屬性addrId,且是string類型,查找addrId的值
任務:UserBO是一個復雜對象,該對象中肯定存在目標屬性addrId(String類型,遞歸方法只能找string類型的屬性,找其他類型自行修改代碼),只是不知道addrId在哪個子屬性中,如果UserBO存在多個addrId屬性,那麼只遍歷出遇到的第一個addrId的值即可。
注意:(本例子在遍歷復雜對象時,如果找到第一個目標屬性,則退出,不在繼續遍歷,後面bolg有遍歷復雜對象所有屬性的文章)
1、本示例提供了兩種方法來獲取復雜對象中指定屬性的值,一種是利用遞歸,另一種是直接把復雜對象轉換成json串,再截取。
2、本示例對於復雜對象中不包含目標屬性時,會返回空字元串。
3、目標屬性可以存在於自定義類、list、map、數組中
4、復雜對象可以是復雜嵌套的BO/List<BO>/Map<Object,BO>,目標屬性存在於BO中
5、對於復雜對象是這種嵌套格式(List<List<BO>>/List<Map<Object,BO>>/Map<Object,List<BO>>)的沒有做測試
————————————————
版權聲明:本文為CSDN博主「一路奔跑1314」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/dhklsl/article/details/83992950
3. 怎樣利用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","bb":"xxx"} (map)為
HashMap對象,裡面有aa和bb兩個key,value分別為xx 和xxx
JSONArray.fromObject(list).toString() --> 返回[{"aa": "xx", "bb":"xxx"}, {"cc":"xxxx", "dd":"xxxxx"}] (list為ArrayList對象,裡面有兩個HashMap對象)
3. 其他使用方法請百歷譽枯度
4. java axis2 怎麼使用 返回json復雜對象
gson 根據BEAN,生成json字元串。
5. 非常復雜的一個json串,怎麼轉成java對象
1、可藉助開源組件FastJson或者Jackson。
2、自己動手
a、使用反射獲取對象所有的setter方法以及對於所需的參數類型用map對應
b、循環上訴集合,依次使用反射調用set方法,並使用正則匹配json串中的值,可以使用class.getDeclareFileds();獲取變數名,注意若參數是class類型需要反射為實例後填充,class類型匹配json串是也需要注意,因為可能存在嵌套對象中變數名一致的情況。展示部分代碼如下:
3、綜合分析還是建議使用中間件來進行映射。可參考Jackson示例