1、什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式
易于人阅读和编写,同时也易于机器解析和生成。
JSON完全独立于语言之外,但语法上借鉴了JavaScript
2、轻量级的解决方案
轻量级:相对于XML,JSON解析速度更快,文档更小。
<emp>
<name>Sally</name>
<city>北京</city>
<age>25</age>
</emp>
{"name":"Sally","city":"北京","age":25}
3、 JSON的结构
JSON主要分两种结构:
"名称/值"对的集合。不同的语言理解为对象、记录、结构、字典、哈希表等
值的有序列表。大部分语言中理解为数组
4、使用JSON表示一个对象
{属性名:属性值,属性名:属性值...}
注意:
属性值可以是string,number,boolean(true,false),null,object。
属性名
属性名必须使用双引号引起来
属性值如果是字符串,必须使用双引号括起来
5、使用JSON表示一个数组
JSON表示数组的语法是:[value,value,value]
Value可以是简单的数据,也可以是Object、数组类型,例如
数组[ {"name":"Jerry","age":22}, {"name":"Tom","age":32} ] 对象{ "name":"Jerry", "hobby":["sing","dance","eat"] }
6、Java字符串--》Javascript对象
使用JavaScript语言的原生函数:eval()
但该方法有风险,使用需谨慎
var str='{"name":"张三","age":24}'; var obj=eval("("+str+")"); alert(obj.name);
使用原生对象JSON提供的parse()方法
如果该对象无效,说明浏览器版本太低
var str='{"name":"王小贱","age":24}'; var obj=JSON.parse(str); alert(obj.name);
使用JSON.js文件为字符串增加的方法
var str='{"name":"王小贱","age":24}'; var obj=str.parseJSON(); alert(obj.name);
7、Java对象转换成JSON
引入必要的jar文件
commons-beanutils.jar
commons-collections.jar
common-lang.jar
common-logging.jar
ezmorph.jar
json-lib.jar
8、Java对象转换成JSON
利用JSON官方提供的API:JSONObject,JSONArray提供的方法。
Employee emp=new Employee("1","王小贱","男"); JSONObject obj=JSONObject.fromObject(emp); String jsonStr=obj.tostring()