码迷,mamicode.com
首页 > Web开发 > 详细

JSON

时间:2016-04-18 18:56:44      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

看我之前整理的了解的json,就对我这脑子来说,真是不用的话,分分钟就把这些东西跟着我的饭一起下肚了

  技术分享

这次结合javascript高级程序设计,跟以前自己的理解,重新看下JSON

JSON 是一种结构化数据的格式,不是javascript独有的,其他语言也有,

一:JSON三种类型(JSON对象语法上加上双引号,不存在赋值和分号,其实json就是字符串)

1简单值:字符串 数组 布尔 null(不支持undefined)  

 "Hello world"

2对象   

{
   "name":"xxx",
    "age":25
}

 

3数组 

[
  {
    "title": "Professional JavaScript",
    "authors": [
      "Nicholas C. Zakas"
    ],
    edition: 3,
    year: 2011
  }
]

二:解析和序列化

  evel()     把JSON解析成javascript原生值,早期时使用,相对与不安全

  后来定义了全局对象JSON,提供了两个方法

  parse()    把JSON值转变成js值

  stringify()    把js对象序列化JSON字符串,输出的JSON字符串不包含任何空格或是缩进

  evel为什么不安全,evel可以解析任何字符串,不安全,比如恶意的向页面插入木马链接脚本等,parse只可以解析json格式,会对解析的字符串进行格式检查。

三序列化选项

stringify()   第一个参数要序列化的js对象,第二个参数是过滤器(可以是一个数组,也可以是一个函数),第三个参数,是否保留缩进(空格数最大为10,大于10自动转换为10,这个参数转换出来更容易读)

1:过滤参数

var book = {
    "title": "Professional JavaScript",
    "authors": [
    "Nicholas C. Zakas"
],
    edition: 3,
    year: 2011
};
var jsonText = JSON.stringify(book, ["title", "edition"]);

{"title":"Professional JavaScript","edition":3}

如果参数是函数

var book = {
  "title": "Professional JavaScript",
  "authors": [
  "Nicholas C. Zakas"
  ],
  edition: 3,
  year: 2011
};
var jsonText = JSON.stringify(book, function(key, value){
  switch(key){
    case "authors":
    return value.join(",")
    case "year":
    return 5000;
    case "edition":
    return undefined;
    default:
    return value;
  }
});

{"title":"Professional JavaScript","authors":"Nicholas C. Zakas","year":5000}

四解析选项 

parse()  第一个参数被转换为Js的JSON字符串,第二参数,是一个函数,讲每个键值对上

var box = ‘[{"name":"liulin","age":18},{"name":"huxiao","age":40}]‘;
var js = JSON.parse(box,function(key,val){
    if(key=="name"){
        return "Mrs"+val;
    }else{
        return val;
    }
 })             

 


OK 有好几个列子不是自己写的,比第一次总结的时候,懒了好多!

 

JSON

标签:

原文地址:http://www.cnblogs.com/liulin0524/p/5405288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!