文档章节

使用JSON处理数据(传统)

南栀安
 南栀安
发布于 2017/06/26 17:24
字数 645
阅读 5
收藏 0

一、后台JSON的转换方式

1.List

//List<Map> to Json
List<Map> list = new ArrayList<Map>();
Map<String,String> map = new HashMap<String,String>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
list.add(map);
String json = new Gson().toJson(list);
System.out.println(json);//输出:[{"b":"2","c":"3","a":"1"}]
		
//Json to List<Map> 
List<Map> consNoList = new Gson().fromJson(json, List.class);
System.out.println(consNoList);//输出:[{b=2, c=3, a=1}]

2.Map

//Map to Json
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
String json = new Gson().toJson(map);ss
System.out.println(json);
//print:{"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}

3.Beans

List list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");
JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");
list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);

4.一般数据

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

二、前台对json值的处理

1.JSON函数

var params = new Object();
params.id=form.id.value;
params.temperature = form.temperature.value;
var param = JSON.stringify(params);	
//print:{"id":"2345","temperature":"12"}

三、前后台json数值传递处理

1.前台塞值---后台取值

1.1前台塞值

function postData(){  
   var json = getValidateResult();
   var data = JSON.stringify(json);
   $.ajax({  
        url: 'task',  
        type: 'post',  
        dataType: 'json',  
        data: data,  //----{"arr":[{"id":"3","result":"333"}]}
        success: function(data){  
            window.location.href="index.jsp?result="+data;  
        },  
        error: function(){  
            alert("error");  
        }  
   });  
}  

function getValidateResult(){
   var json = new Object();
   var jsonArr = new Array();
   for(var i=1;i<tableList.length;i++){
      var res = tableList.get(i);
      var tmpValue = new Object();
      tmpValue.id = id;
      tmpValue.result = res;
      jsonArr.push(tmpValue);
      //alert(JSON.stringify(jsonArr))  -----[{"id":"3","result":"333"}]
   }
   json.arr = jsonArr;
   //alert(JSON.stringify(json)); ---{"arr":[{"id":"3","result":"hen"},{"id":"4","result",ha"}]}
   return json;
}

1.2后台取值

//jsonData-------{"arr":[{"id":"3","result":"hen"},{"id":"4","result",ha"}]}
//相当于后台的如下操作
//List<Map> list = new ArrayList<Map>();
//Map map = new HashMap();
//map.put("id", "3");
//map.put("result", "hen");
//list.add(map);
//map = new HashMap();
//map.put("id", "4");
//map.put("result", "ha");
//list.add(map);
//System.out.println(new Gson().toJson(list));
//输出:[{"id":"3","result":"hen"},{"id":"4","result":"ha"}]

//map = new HashMap<String,String>();
//map.put("arr", list);
//String json = new Gson().toJson(map);
//System.out.println(json);
//输出:{"arr":[{"id":"3","result":"hen"},{"id":"4","result":"ha"}]}

JSONObject json = JSONObject.fromObject(jsonData);  
JSONArray arr = json.getJSONArray("arr"); //前台json对象的属性名
for(int i=0;i<arr.size();i++){//循环遍历json数组
    JSONObject tmpValue = arr.getJSONObject(i);
    System.out.println(tmpValue);  //当第一次遍历时,{"id":"3","result":"hen"}
    System.out.println((String)tmpValue.get("id"));  //3
    System.out.println((String)tmpValue.get("result"));  //hen
}

 

2.后台塞值----前台取值

2.1后台塞值

List<Map> list = new ArrayList<Map>();
Map map = new HashMap();
map.put("id", "3");
map.put("result", "hen");
list.add(map);
map = new HashMap();
map.put("id", "4");
map.put("result", "ha");
list.add(map);
String json = new Gson().toJson(list);
System.out.println(json);//输出:[{"id":"3","result":"hen"},{"id":"4","result":"ha"}]

map = new HashMap<String,String>();
map.put("arr", list);
json = new Gson().toJson(map);
System.out.println(json);//输出:{"arr":[{"id":"3","result":"hen"},{"id":"4","result":"ha"}]}

2.2前台取值

function getJson(){
   var charData = JSON.parse(form.data.value); 
   //----struts的页面form属性值,从后台传入到前台,后期会改
   //data值:{"arr":[{"id":"3","result":"hen"},{"id":"4","result":"ha"}]}
   var jsonArr = new Array();
   jsonArr = charData.arr;
   for(var i=0; i<jsonArr.length; i++){
      alert(jsonArr[i].id); //第一个数值为3
   }
}

 

© 著作权归作者所有

共有 人打赏支持
南栀安
粉丝 1
博文 20
码字总数 5177
作品 0
绍兴
深入了解Struts2返回JSON数据的原理及具体应用范例

JSON建构于两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 ...

goover1001
2014/03/12
0
0
springMVC笔记系列(22)——Json各类操作在springMVC中的实现

Json使得更多的开发可以在单页面完成,大大改变了如今人们的开发方式,使得前端和后端的分离更加彻底。Json是一种轻量级的数据交换格式。Json与XML格式一样具有良好的结构,但格式更为简洁。...

HappyBKs
2016/07/07
739
0
fetch 如何请求常见数据格式

一 序言 在 传统Ajax 时代,进行 API 等网络请求都是通过 XMLHttpRequest或者封装后的框架进行网络请求,然而配置和调用方式非常混乱,对于刚入门的新手并不友好。今天我们介绍的Fetch提供了一...

浪里行舟
06/12
0
0
Mysql5.7.9原生JSON格式支持

Mysql5.7.9原生JSON格式支持 创建表 create table news (uid int auto_increment, data json, primary key(uid))engine innodb; 插入数据 insert into news values (NULL,'{"name":"tester",......

xinson
2015/10/22
2.4K
0
JFinal 2.1 发布,用 JFinal 开发,就这么定了!

JFinal 2.1 将带给大家超过60项增强与改进,此次升级核心目的,一是全面解救传统SSH开发者,强力推动这些早已累成狗的工程师转投 JFinal 怀抱,二是与老用户建立更深的情感,答谢你们长久以来...

JFinal
2015/12/29
24.4K
354

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部