一、JSON对象概念

JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。

JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

1、JSON的规则

对象是一个无序的“‘名称/值’对”集合。

  • 一个对象以“{”开始,“}”结束。
  • 每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

具体细节参考:http://www.json.org/json-zh.html

因为JSON 是 javascript 的一个子集,所以,在javascript 中使用JSON对象是非常简单的。

例一:我们创建了只包含一个成员 "bindings" 的一个对象,bindings 则包含了一个由3个对象组成的数组。这3个对象都包含3个成员:"ircEvent", "method","regex"。

var myJSONObject = {"bindings": [    
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},    
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},       
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}    
    ]      
};

例二:这表示一个user对象,拥有username, age, info, address 等属性。

var user =
   {
       "username": "andy",
       "age": 20,
       "info": { "tel": "123456", "cellphone": "98765" },
       "address": [{ "city": "beijing", "postcode": "222333" }, { "city": "newyork", "postcode": "555666"}]
   }

二、JSON对象的读取

在javascript 中, 成员可以通过“点号”来获取。

myJSONObject.bindings[0].method

三、修改JSON数据

也可以用JSON来简单的修改数据。

function showJSON() {
    var user =
   {
       "username": "andy",
       "age": 20,
       "info": { "tel": "123456", "cellphone": "98765" },
       "address": [{ "city": "beijing", "postcode": "222333" }, { "city": "newyork", "postcode": "555666"}]
   }
    alert(user.username);
    alert(user.age);
    alert(user.info.cellphone);
    alert(user.address[0].city);
    alert(user.address[0].postcode);
    user.username = "Tom";
    alert(user.username);
}

四、字符串转成JSON对象

1、通过eval() 函数可以将JSON字符串转化为对象。

文本生成json对象,必须在外面加一对括号。

function myEval() {
    var str = '{ "name": "Violet", "occupation": "character" }';
    var obj = eval('(' + str + ')');
    alert(obj.name);
}

eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问题。

2、利用JS的JSON对象功能

json 转 String

var str = JSON.stringify(json)
console.log(str);

String 转 Json

json = JSON.parse(str);
console.log(json)

3、利用jquery.json-2.2.min.js将Object转成JSON

function showCar() {
    var carr = new Car("Dodge","Coronet R/T", 1968, "yellow");
    var JosnString = $.toJSON(carr);      //{"make":"Dodge","model":"Coronet R/T","year":1968,"color":"yellow"}       
    var make = $.evalJSON(JosnString).make; 
    alert(make);
}

function Car(make, model, year, color) {
    this.make = make;
    this.model = model;
    this.year = year;
    this.color = color;
}