JSON是什么?
json(JavaScript Object Notation)是一种轻量级的数据交换标准。一般用于浏览器与服务器之间的数据转换。
1. 什么是数据交换?
将数据转换成一种标准的,与平台无关的数据格式发送给另外一方。
2. 轻量级
相对于xml,json解析的速度更快、并且文档的大小也要小一些。
json语法
用json表示一个对象
{ "属性名称":属性值,"属性名称":属性值 }
注意:
a、属性名称必须使用引号括起来。
b、属性值的类型可以是string,number,boolean,null,object。
c、属性值如果是字符串,必须使用引号括起来。
function f1(){ var obj={'name':'zs','age':22};//obj是引用类型的变量,指向一个javascript对象 alert(obj.name); } function f2(){ //address属性的属性值是一个javascript对象(object对象) var obj={'name':'春娇','address':{'street':'大钟寺','room':1207}};
alert(obj.address.room); }
表示一个对象组成的数组
[元素1,元素2,元素3] json对象数组 [{...},{...},{...}]
function f3(){ var arr=[{'name':'zs','age':22},{'name':'lisi','age':23},{'name':'wangwu','age':22}]; alert(arr[1].name); for(var i=0;i<arr.length;i++){ alert(arr[i].name); }
使用json完成数据交换
java对象转换成json字符串
a、引入json.jar开发包
b、将Java对象转换json对象格式的字符串
JSONObject json = JSONObject.formObject(java对象);
String jsonStr = json.toString();
c.、将Java对象集合转换成json对象数组格式的字符串
JSONArray json = JSONArray.fromObject(集合);
String jsonStr = json.toString();
json字符串转换成javascript对象
可以使用一些js框架提供的api,比如prototype提供的evalJSON函数。
function f4(){ var str="{'name':'zs','age':22}"; var obj=str.evalJSON();//将json字符串转换成一个js对象 alert(obj.name); var str1="[{'name':'zs','age':22},{'name':'lisi','age':23}]"; var arr=str1.evalJSON();//json字符换转换 alert(arr[1].name); }
利用全局函数eval(string)也可以实现
function f4(){ var str="{'name':'zs','age':22}"; var obj=eval("("+str+")"); alert(obj.name); var str1="[{'name':'zs','age':22},{'name':'lisi','age':23}]"; var arr=eval("("+str1+")"); alert(arr[1].name); }