Json:前台对象数组传到后台解析

方法:使用JsonArray进行解析

步骤:

一、引入一系列JAR包

      要使程序便于解析json,首先引入json-lib包,son-lib包同时依赖于5个JAR包:(前5个为依赖包);

      由于刚开始笔者是随便下载这些包(没有管版本)导入程序,但没想到程序出现了兼容问题,为了使大家不再浪费时间,现给出经测试可用的一套包名及版本号;

      1.commons-beanutils-1.8.3.jar

      2.commons-collections-3.2.1.jar

      3.commons-lang-2.6.jar

      4.commons-logging-1.1.1.jar

      5.ezmorph-1.0.6.jar

      6.json-lib-2.4-jdk15.jar

二、前台代码

      datalist是类似这样的对象数据:

   var datalist= new Array();
   for ( var i = 1; i <= bookCount; i++) {
	var object = new Object();
	object.id = i;
	object.name = "同学"+i;
        datalist.push(object);		
   }

       前台传输对象数组datalist: 

   function saveData(datalist){
	$.ajax({
		type:"POST",
		url:base +"/save",
		data:{"datalist":JSON.stringify(datalist)},
		dataType: "json",
		success:function (data){
		   
		},
		error:function (){
		     alert("insert serv wrong");
		}
	});
   }

三、后台代码

       后台获取到的list是string类型的,值为:

   [{"id":1,"name":"同学1"},{"id":2,"name":"同学2"}]

       后台转换得到对象对应值:

       注意:这样使用的话,引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray,但JSONObject.fromObject(obj)时报错报java.lang.reflect.InvocationTargetException错误。解决很久未果,偶然看一网友说用org.json比net.sf.json好用,就试了下。在此给大家提供个参考。

    public Object save(@Param("datalist")String list){		
	JSONArray jsonArray = new JSONArray(list);
	String id = jsonArray.getJSONObject(0).get("id");</span>//得到第一个同学的id
        String name = jsonArray.getJSONObject(0).get("name");</span>//得到第一个同学的name
       return true; 
    }

 

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值