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示例