一、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; }