JSON-lib
来源:互联网 发布:人脸比对算法 编辑:程序博客网 时间:2024/05/20 23:08
一.JSON-lib应用
1.JSON-lib是什么?
- 它可以把javabean转换成json串
2.jar包
JSON-lib的核心jar包有
- json-lib.jar
JSON-lib的依赖jar包有
- commons-lang.jar
- commons-beanutils.jar
- commons-logging.jar
- commons-collections.jar
- ezmorph.jar
json有关的jar包下
3.核心类
(1).JSONObject(相当于Map)
- toString();
public void fun1() { JSONObject jsonObject=new JSONObject(); jsonObject.put("name", "zhangsan"); jsonObject.put("age", 18); jsonObject.put("sex", "male"); String str=jsonObject.toString(); System.out.println(str); }
输出
{"name":"zhangsan","age":18,"sex":"male"}
- JSONObject map = JSONObject.fromObject(person); 把对象转换成JSONObject对象
/* * 当你已经有一个Person对象时,可以把Person转换成JSONObject串 */ @Test public void fun2() { Person person = new Person("lisi",18,"female"); //把对象转换成JSONObject类型 JSONObject map = JSONObject.fromObject(person); System.out.println(map.toString()); }
输出
{"age":18,"name":"lisi","sex":"female"}
(2).JSONArray(相当于List)
- toString();
public void fun3() { Person p1 = new Person("lisi",18,"female"); Person p2 = new Person("zhangsan",18,"male"); JSONArray list = new JSONArray(); list.add(p1); list.add(p2); System.out.println(list.toString()); }
输出
[{"age":18,"name":"lisi","sex":"female"},{"age":18,"name":"zhangsan","sex":"male"}]
- JSONArray jsonArray = JSONObject.fromObject(list);把list转换成JSONArray对象
/* * 原来就有一个List,我们需要把List转换成JSONArray */ @Test public void fun4() { Person p1 = new Person("lisi",18,"female"); Person p2 = new Person("zhangsan",18,"male"); List<Person> list = new ArrayList<Person>(); list.add(p1); list.add(p2); System.out.println(JSONArray.fromObject(list)); }
输出
[{"age":18,"name":"lisi","sex":"female"},{"age":18,"name":"zhangsan","sex":"male"}]
二.打包ajax生成小工具
1.ajaxutils.js源码
// 创建request对象function createXMLHttpRequest(){ try{ return new XMLHttpRequest();//大多数浏览器 }catch (e) { try{ return ActiveXObject("Msxml2.XMLHTTP");//IE6.0 }catch (e) { try { return ActiveXObject("Microsoft.XMLHTTP");//IE5.5及更早版本 } catch (e) { alert("哥们儿,你用的什么浏览器????"); throw e; } } }}/*option有如下属性*/ /*请求方式method,*/ /*请求的url,*/ /*是否异步asyn,*/ /*请求体内容params,*/ /*回调方法callback,*/ /*服务器响应数据转换成什么类型type*/function ajax(option){ /* * 1.得到xmlHttp */ var xmlHttp = createXMLHttpRequest(); /* * 2.打开连接 */ if(!option.method){//默认为GET请求 option.method = "GET"; } if(option.asyn == undefined){ //默认为异步处理 option.asyn = true; } xmlHttp.open(option.method,option.url,option.asyn); /* * 3.判断是否为POST */ if("POST" == option.method){ xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } /* * 4.发送请求 */ xmlHttp.send(option.params); /* * 5.注册监听 */ xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState ==4&& xmlHttp.status ==200){ // 获取服务器的响应数据,进行转换 var data; if(!option.type){//如果type没有赋值,那么默认为文本 data = xmlHttp.responseText; } else if(option.type == "xml"){ data = xmlHttp.responseXML; } else if(option.type == "text"){ data = xmlHttp.responseText; }else if(option.type == "json"){ var text = xmlHttp.responseText; data = eval("("+text+")"); } //调用回调方法 option.callback(data); } };}
2.演示
<body> <%-- 点击按钮后,把服务器响应的数据显示到h3元素中--%> <button id="btn">点击这里</button> <h1>显示自己封装的ajax小工具</h1> <h3 id="h3"></h3></body>
<script type="text/javascript" src="ajax-lib/ajaxutils.js"></script><!--导入js文件--><script type="text/javascript"> window.onload = function() { var btn = document.getElementById("btn"); btn.onclick = function() { /* 1.ajax */ ajax( { url:"/day23_03/AServlet", type:"json", callback:function(data){ document.getElementById("h3").innerHTML = data.name+","+data.age+","+data.sex; } } ); }; };</script>
public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String string="{\"name\":\"zhangsan\",\"age\":18,\"sex\":\"male\"}"; response.getWriter().print(string); System.out.println(string); }}
效果
阅读全文
1 0
- Json-lib
- Json-lib
- json-lib
- JSON lib
- JSON-lib
- JSON lib
- JSON lib
- json lib
- json-lib
- json-lib
- Json-lib
- JSON-lib
- JSON小结【json-lib】
- JSON及JSON-LIB
- Json-lib解析Json
- json-lib json 格式 Date
- JSON简单例子(Json-lib)
- JSON之json-lib解析
- Eclipse 实用、常用 快捷键
- cnn理解
- contentSize、contentInset和contentOffset
- mybatis <foreach>标签 基本原理
- python快速入门
- JSON-lib
- 11.23周四
- qt5 中文乱码解决方法
- 第十三周周四总结
- Swift for循环语句用法
- hdu 2680 Choose the best route
- nanopi s2 驱动开发心得(一)
- 是是是
- Bitmap在海量无重复整数排序时的应用