一、JSON是一种结构化的数据表示方式,JSON并不是javascript独有的数据结构,其他语言也可以对json进行解析和序列化

二、json基本组成:1简单值、2对象、3数组

  简单值:

10
"hello"
true
null

  对象:

//javascript表示对象方式
var obj = {
  name : "susan",
  age : 21        
}
//json表示对象方式
{
  "name":"susan",
  "age" : 21    
}

  3数组

//javascript表示方式
var arr = ["susan", 10, true];
//json表示方式
["susan", 10, true]

  ps:一般情况下都是把json结构数据存放在一个文本里面,然后通过XMLHttpRequest加载json

三、解析和序列化

使用javascript解析json时,早期采用的是eval()函数进行解析,但是不安全,会产生恶意代码

var json = '[{"name":"susan","age":10},{"name":"jerry","age":20}]';

json = eval(json);//使用eval()解析json

现在ECMAScript5对解析JSON进行了规范,定义了全局对象JSON。该对象提供了2个方法:一个是javascript对象解析成json字符串stringify(),还有一个是json字符串转换为javascript对象parse()

var json = '[{"name":"susan","age":10,"address":"SZ"},{"name":"jerry","age":20,"address":"SH"}]';
var obj = JSON.parse(json);//json字符串解析成javascript对象
var obj = JSON.parse(json, function(key, value){
  if(key == "name"){
    return "Mr." + value;
  } else {
    return value;
  }
},4);
var obj =[{name:"susan",age:10,address:"SZ"},{name:"jerry",age:10,address:"SH"}];
var json = JSON.stringify(obj);//javascript对象序列化json字符串
var json = JSON.stringify(obj,function(key,value){
  switch(key){
    case "name":
      return:"Mr." + value;
    case "age":
      return:value + "岁";
    case address":
      return:"address:" + value;
    default:
      return value;
  }
},4);

可以使用toJSON()方法将莫一组对象返回指定的值

 

posted on 2014-09-30 00:17  苏荷酒吧  阅读(163)  评论(0)    收藏  举报