JSON及JSON-LIB
来源:互联网 发布:mac usb设备已停用 编辑:程序博客网 时间:2024/06/02 13:13
1 什么是JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON是用字符串来表示Javascript对象,例如可以在Servlet中发送一个JSON格式的字符串给客户端Javascript,Javascript可以执行这个字符串,得到一个Javascript对象。
XML也可以用来佟大为数据交换,前面已经学习过在Servlet中发送XML给Javascript,然后Javascript再去解析XML。
2 JSON对象语法
JSON 语法:
l 数据在名称/值对中
l 数据由逗号分隔
l 花括号保存对象
l 方括号保存数组
var person = {"name":"zhangSan","age":"18","sex":"male"};
alert(person.name + ", " + person.age +", " + person.sex);
注意,key也要在双引号中!
JSON值:
l 数字(整数或浮点数)
l 字符串(在双引号中)
l 逻辑值(true 或 false)
l 数组(在方括号中)
l 对象(在花括号中)
l null
var person = {"name":"zhangSan","age":"18","sex":"male","hobby":["cf","sj","ddm"][c1] };
alert(person.name + ", " + person.age +", " + person.sex +", " + person.hobby);
带有方法的JSON对象:
var person = {"name":"zhangSan","getName":function() {return this.name;}};
alert(person.name);
alert(person.getName());
3 JSON与XML比较
l 可读性:XML胜出;
l 解码难度:JSON本身就是JS对象(主场作战),所以简单很多;
l 流行度:XML已经流行好多年,但在AJAX领域,JSON更受欢迎。
4 把Java对象转换成JSON对象
apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串。也可以把JavaBean转换成JSON字符串。
4.1 json-lib核心jar包
json-lib的核心jar包有:
l json-lib.jar
json-lib的依赖jar包有:
l commons-lang.jar
l commons-beanutils.jar
l commons-logging.jar
l commons-collections.jar
l ezmorph.jar
4.2 json-lib中的核心类
在json-lib中只有两个核心类:
l JSONObject;
l JSONArray;
4.1 JSONObject
JSONObject类本身是一个Map,所以学习它很方便。
JSONObject jo = new JSONObject();
jo.put("name","zhangSan");
jo.put("age","18");
jo.put("sex","male");
System.out.println(jo.toString());[c2]
Person person = new Person("liSi", 18,"female");
JSONObject jo = JSONObject.fromObject(person)[c3] ;
System.out.println(jo.toString());
Map map = new HashMap();
map.put("name","wangWu");
map.put("age","81");
map.put("sex","male");
JSONObject jo = JSONObject.fromObject(map)[c4] ;
System.out.println(jo.toString());
String xml = "<person><name>zhaoLiu</name><age>59</age><sex>female</sex></person>";
XMLSerializer serial = new XMLSerializer();
JSONObject jo = (JSONObject)serial.read(xml);[c5]
System.out.println(jo.toString());
4.2 JSONArray
JSONArray本身是一个List,所以使用起来很方便。
JSONArray ja = new JSONArray();
Person p1 = new Person("zhangSan", 18,"male");
Person p2 = new Person("liSi", 23,"female");
ja.add(p1);
ja.add(p2);
System.out.println(ja.toString());
Person p1 = new Person("zhangSan", 18,"male");
Person p2 = new Person("liSi", 23,"female");
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);
JSONArray ja = JSONArray.fromObject(list)[c6] ;
System.out.println(ja.toString());
Person p1 = new Person("zhangSan", 18,"male");
Person p2 = new Person("liSi", 23,"female");
Person[] persons = {p1, p2};
JSONArray ja = JSONArray.fromObject(persons)[c7] ;
System.out.println(ja.toString());
5 JS解释服务器发送过来的JSON字符串
服务器发送过来JSON字符串后,客户端需要对其进行解析。这时客户端需要使用eval()方法对JSON字符串进行执行!但要注意,eval()方法在执行JSON时,必须把JSON字符串使用一对圆括号括起来。
var json = "{\"name\":\"zhangSan\", \"age\":\"18\", \"sex\":\"male\"}";
var person = eval("(" + json +")");
alert(person.name + ", " + person.age +", " + person.sex);
[c1]数组属性
[c2]输出为:{"name":"zhangSan","age":"18","sex":"male"}
[c3]把JavaBean对象转换成json
[c4]把Map转换成JSON
[c5]把xml转换成JSON,这需要导入xom-1.1.jar
[c6]把list转换成JSONArray
[c7]把数组转换成JSONArray
- JSON及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-lib
- JSON小结【json-lib】
- Json-lib解析Json
- json-lib json 格式 Date
- JSON简单例子(Json-lib)
- JSON之json-lib解析
- 顺序队的基本操作(C 完整源代码)
- 魔方图形代码
- 代码创建约束01
- Java基础——运算符
- iOS-置顶按钮相关
- JSON及JSON-LIB
- 单例模式 解析——浅显易懂
- 关于splash页面 白屏问题
- css background属性的使用方法
- Java中的算术运算符
- 重装Eclipse(或者更新ADT)出现 appcompat _v7问题解决方法与问题剖析
- java中的信号量semaphore实现生产者消费者模式
- Exception:异常分类
- shader - 可以使用三种不同的方法