`

json数据后台处理

阅读更多
JAVA解析JSON问题,怎么解析,急!!

String jsonstr = "[
   {
      "precision": "zip",
      "Latitude":  37.7668,
      "Longitude": -122.3959,
      "Thumbnail": {
          "Url":    "和谐xxx",
          "Height": 125,
          "Width":  "100"
      }
   },
   {
      "precision": "zip",
      "Latitude":  37.371991,
      "Longitude": -122.026020,
        "Thumbnail": {
          "Url":    "和谐xxx",
          "Height": 125,
          "Width":  "100"
      }
     
   }
]"


我想解析它,得到URL、Height、Width;我想用java对象数组,存放Thumbnail中的值,怎么做啊?


JSONArray jsonArr = new JSONArray(jsonstr);//通过jsonstr字符串构造JSONArray对象
JSONObject obj = (JSONObject)jsonArr.get(0);//获取jsonArr里第一个对象并把它赋值给                                                                       //JSONObject对象--因为你这里第一个对象是一个json串
//获取json串里Thumbnail属性的值,因为还是一个json串,这里还转换为JSONObject对象

JSONObject thumbnail = (JSONObject)obj.get("Thumbnail");
//获取Url属性,得到值

String url = (String)thumbnail.get("Url");

//只是示范一下,这里取到的是第一个Thumbnail的Url属性的值,相信看后你应该能取到你想要的

你把这个字符串反向解析成为一个 json对象,再通过json类提供的方法读取里面的值即可。

--------

---前端组装成json格式的数据
	addHoliday : function(btn){
		var allRecords = [];
		Ext.each(this.PPanel.datePick,function(pick){
			var records = pick.getSelectDates();
			Ext.each(records,function(record){
				Ext.apply(record.json,{datetype:btn.datetype,color:btn.color});
				allRecords.push(record.json);
			},this);
		},this);
		var data = Ext.util.JSON.encode(allRecords);
		Ext.Ajax.request({
			url : 'DateSet/DateSet.do',
			params : {object:'addHoliday',records:data,token:token},
			scope : this,
			callback : function(o,s,resp){
				if(ajaxRequestFailure(resp.statusText)){
					return;
				}
				var respText = Ext.util.JSON.decode(resp.responseText);
				if(respText.success){
					for(var i=0;i<this.PPanel.datePick.length;i++){
						this.PPanel.datePick[i].reloadDate();
					}
				}else{
					Ext.Msg.alert('错误',respText.error);
				}
			}
		});
	},


-----json格式数据
[
  {
    "a_num": "7",
    "name": "<font color=red>7</font>",
    "day": "7",
    "year": "2015",
    "month": "2",
    "spacenum": "6",
    "datetype": 3,
    "color": "black"
  },
  {
    "a_num": "8",
    "name": "<font color=red>8</font>",
    "day": "8",
    "year": "2015",
    "month": "2",
    "spacenum": "6",
    "datetype": 3,
    "color": "black"
  },
  {
    "a_num": "14",
    "name": "<font color=red>14</font>",
    "day": "14",
    "year": "2015",
    "month": "2",
    "spacenum": "6",
    "datetype": 3,
    "color": "black"
  }
]


-----java_片段
String data = uFunc.getString(request.getParameter("records"));//uFunc就是去除空格和特殊字符
		JSONArray jArray = JSONArray.fromObject(data); 
		JSONObject jsonObject;
		String sSQL = "",year,month,day,datetype,color;
		List<String> sqlList = new ArrayList<String>();
        for(int i = 0; i < jArray.size(); i++){     
            jsonObject = jArray.getJSONObject(i); 
            year = uFunc.getJSONString(jsonObject, "year");
            if(uFunc.IsNullString(year))
            	continue;
            month = uFunc.getJSONString(jsonObject, "month");
            day = uFunc.getJSONString(jsonObject, "day");
            datetype = uFunc.getJSONString(jsonObject, "datetype");
            color = uFunc.getJSONString(jsonObject, "color");
            sSQL = "update sw_work.dateset a set a.datetype = '"+datetype+"',a.color='"+color+"' where a.year="+year+" and a.month="+month+" and a.day="+day;
            sqlList.add(sSQL);//当批量执行需要提交事务的语句时  用sqlList来添加执行;一条语句时可直接在execute中写sql语句。
        }
        try{
        	this.getBaseDao().execute(sqlList);
        	uFunc.writeSuccessToResponse(response, "操作成功");
        }catch(Exception ex){
        	ex.printStackTrace();
        	uFunc.writeErrorToResponse(response, ex.getMessage());
        }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics