关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!
来源:互联网 发布:zoomla 逐浪cms 编辑:程序博客网 时间:2024/05/01 22:26
【环境】Struts2.1.8&Spring3.0&Hibernate3&JSON2.3。
【JSON相关包】ezmorph-1.0.6.jar,json-lib-2.3-jdk15.jar,morph-1.1.1.jar,morph-sandbox-1.1.1.jar
【具体情况】前台页面中打算实现AJAX联动:第一个下拉选择框中选中省份,第二个下拉选择框中就会列出属于这个省份的所有城市。
具体实现方法:选中省份后,就会触发jquery异步请求,执行Action中的listCity方法,而listCity方法中无非就是查询数据库,根据选择的省份查出属于这个省份的所有城市,然后带到前台显示。而前台ajax需要的是一个数组,而不是一个list。所以就在Action中使用JSON,将封装了所有城市的list变成一个数组:JSONArray jsonArray=JSONArray.fromObject(list);
。那么问题来了:测试的时候,这段代码死活不执行,并且这段代码下面的所有代码也不执行,也不报错!所以list就不能变成数组,所以就不能带到前台!
【解决方法】不使用JSONArray jsonArray=JSONArray.fromObject(list);
来构建数组。
而是手动构建: List<String> cityNameList=new ArrayList<String>();
for(City c:cityList){
cityNameList.add(c.getName());
}
JSONArray jsonArray = new JSONArray();
for(int i=0;i<cityNameList.size();i++){
JSONObject object=new JSONObject();
object.put("name", cityNameList.get(i));
jsonArray.add(object);
}
使用JSONObject,JSONObject像一个entry,是一个键值对,而JSONArray 像一个数组型的的Map,所以我们就可以循环list,使list的每一个元素都变成一个JSONObject,然后将JSONObject加到JSONArray中。这样一来我们就手动完成了将list转成JSON类型的数组。
- 关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!
- json JSONArray.fromObject()不执行
- JSONObject、JSONArray.fromObject 不执行不报错
- JSONObject、JSONArray.fromObject 不执行不报错
- JSONArray
- JSONARRAY
- JSONArray json = JSONArray.fromObject(list_excel); list类型数据转换成JSONArray类型数据报错
- JSONArray.fromObject不执行不报错的解决方法
- JSONArray.fromObject转换不了,提示JSONArray没有fromObject方法
- 后台发送json数据,将List转化成json数据时执行到JSONArray distJson=JSONArray.fromObject(ChapterList)就报错的问题解决方案
- JSONArray jsonArray解析
- list转jsonArray
- jsonArray转换成list
- JSONArray 转list
- JSONArray转化List
- fastjson list转JSONArray
- List<JSONObject>和JSONArray
- list转JSONArray,JsonObeject
- IT女性的职业困惑 (1)
- java中Array/List/Map/Object与Json互相转换详解
- Http通信模仿迅雷多线程下载
- time类中的运算符重载
- HDU - 4002 Find the maximum (Java大数打表)
- 关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!
- C001-C语言-语法与用法摘录-(ques=2)
- 实现分数类中的对象和整型数的四则运算。分数类中的对象可以和整型数进行四则运算,且运算符合交换律。例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;。同样,可以完成i+
- IT女性的职业困惑 (2)
- Android学习笔记(十三)text 文本输入
- debian8.5(jessie)安装docker
- Chp13 多线程
- 文章标题
- CI框架学习--搭建