JSON

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。
浏览器从服务器端接收数据时,那些数据必须以浏览器能够理解的格式来发送,服务器端的编程语言只能以如下3种格式返回数据:xml、json、html
对于 AJAX 应用程序来说,JSON 比 XML 更小、更快,更易解析。

1.语法:

JSON 语法是 JavaScript 对象表示法语法的子集。     
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];

注意区分:

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

2.使用 JSON:

JSON最常见的用法之一是从web服务器上读取JSON数据(文件或作为HttpRequest),将JSON数据转换为JavaScript对象,然后在网页中使用该数据。
Json只是一种文本字符串,被存储在responseText属性中,为了读取存储在responseText属性中的json数据,需要根据js中的eval()函数把字符串
当作它的参数,然后这个字符串会被当做js代码来执行

JSON.parse 将 JSON 字符串转换成对象。
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}'; 
var contact = JSON.parse(jsontext); 
document.write(contact.surname + ", " + contact.firstname); 
document.write(contact.phone[1]); 
// Output: 
// Aaberg, Jesper 
// 555-0100

3.实例
我们首先定义一个JSON对象,代码如下。

var obj = {
            1: "value1",
            "2": "value2",
            count: 3,
            person: [ //数组结构JSON对象,可以嵌套使用
                        {
                            id: 1,
                            name: "张三"
                        },
                        {
                            id: 2,
                            name: "李四"
                        }
                   ],
            object: { //对象结构JSON对象
                id: 1,
                msg: "对象里的对象"    
            }
        };

从JSON中读数据

function ReadJSON() {
            alert(obj.person[0].name); //或者alert(obj.person[0]["name"])
            alert(obj.object.msg); //或者alert(obj.object["msg"])
        }

向JSON中写数据

function Add() { 
            //往JSON对象中增加了一条记录
            obj.sex= "男" ;//或者obj["sex"]="男"
        }

增加数据后的JSON对象如图:
这里写图片描述
修改JSON中的数据

function Update() {
            obj.count = 10; //或obj["count"]=10
        }

删除JSON中的数据

function Delete() {
            delete obj.count;
        }

遍历JSON对象:
可以使用for…in…循环来遍历JSON对象中的数据,比如我们要遍历输出obj对象的值,代码如下:

function Traversal() {
            for (var c in obj) {
                console.log(c + ":", obj[c]);
            }
        }

4.AJAX中的Json

if(xmlHttp.readyState==4){
                if(xmlHttp.status==200){
                    var xmlDoc=xmlHttp.responseText;
                    var data=eval(xmlDoc);
                    alert(data[0].userId+","+data[0].userName+","+data[0].userSex);
                    alert(data[1].userId+","+data[1].userName+","+data[1].userSex);
                }else{
                        alert("AJAX服务器返回错误!");
                }    
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值