关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!

原创 2016年06月01日 13:50:05

【环境】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 json = JSONArray.fromObject(list_excel); list类型数据转换成JSONArray类型数据报错

现象: 导入的包是 commons-lang3-3.1.jar  出现异常: java.lang.NoClassDefFoundError: org/apache/commons/la...
  • u014510639
  • u014510639
  • 2015年08月04日 18:00
  • 358

解决list转换json出现的各类问题 object转换为Map对象

最近在写接口,要把list集合转换为json串返回。例如          List orders = orderService.findAll();         JSONArray arra...
  • u012515742
  • u012515742
  • 2016年10月12日 12:46
  • 2011

List集合转JSONArray方法以及常见问题的解决办法

SSH 项目中异步提交需要用到JSON返回给页面一个json字符串 在XXXAction就要把从DAO里查询返回的List集合转成JSONArray数组 通常是: java代码: List...
  • H12KJGJ
  • H12KJGJ
  • 2017年03月20日 13:55
  • 3769

JSONArray和JSONObject的简单使用

一、为什么要使用JSONArray和JSONObject 1、后台 --》前台 可以把java对象和集合转化成json字符串格式,这样在前台的ajax方法中可以直接转化成json对象使用 ,从后台向前...
  • hao007cn
  • hao007cn
  • 2015年08月12日 14:28
  • 6509

JSONObject、JSONArray.fromObject 不执行不报错

使用:import net.sf.json.JSONObject; 发现执行到JSONObject x = new JSONObject() 程序不执行,也没报错,有可能是包版本不对导致的异常: ...
  • lipei1220
  • lipei1220
  • 2015年07月13日 17:34
  • 5915

java中Array/List/Map/Object与Json互相转换详解

JSON(JavaScript Object Notation): 是一种轻量级的数据交换格式一、JSON建构有两种结构:对象和数组1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {ke...
  • aa4790139
  • aa4790139
  • 2013年02月18日 11:25
  • 70425

获取form表单的值并转化为字符串、JSONArray或JSONObject的方法及form取不到值的解决办法

form表单提交时,可能需要转化为不同的形式来作为参数请求接口。本文总结了将form表单的值并转化为字符串、JSONArray或JSONObject的方法。 1. form转化为字符串 v...
  • listmana
  • listmana
  • 2016年09月01日 22:38
  • 2714

关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持

关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持。 net.sf.json的下载地址 最新版本:http://sourceforge.ne...
  • y562363753
  • y562363753
  • 2017年08月05日 10:11
  • 4662

使用JSONArray.fromObject所需要的jar包

  • 2016年12月19日 14:13
  • 1.11MB
  • 下载

JSONObject、JSONArray

最近两个星期接触最多的就是json和map了。    之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去...
  • lishuangzhe7047
  • lishuangzhe7047
  • 2014年06月06日 16:41
  • 178436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!
举报原因:
原因补充:

(最多只允许输入30个字)