首页 > 代码库 > JSON基础知识

JSON基础知识

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);
}

 

JSON基础知识