zjw_python的博客

人生苦短,我用Python

Javascript学习笔记14 JSON

JSON是一种数据格式,可以表示以下三种类型的值

  • 简单值:字符串、数值、布尔值和null(不支持undefined)
  • 对象:对象中的键值可以是简单值,也可以是对象等复杂类型值
  • 数组:数组的元素值可以是任意类型
JSON字符串必须使用双引号
JSON对象中的属性名,必须加上双引号
JSON中没有变量,因此对象和数组中不能存在变量

序列化和解析
使用JSON对象的stringify()方法,将JS对象序列化为JSON字符串,该方法接受1个必选参数,即JS对象,以及2个可选参数,过滤器(数组或函数)和缩进的空格数(一个整数值)
使用JSON对象的parse()方法,将JSON字符串解析为JS值,该方法接受1个必选参数,即JSON字符串,以及1个可选参数,即将在每个值对上调用的函数

var book ={
    title:"javascript",
    author:[
        "wjz"
    ],
    edition:3,
    year:2011
};

var jsonText = JSON.stringify(book);  //将对象转化为JSON字符串
// {"title":"javascript","author":["wjz"],"edition":3,"year":2011}
var bookCopy = JSON.parse(jsonText);  //将JSON字符串转化为JS对象
//序列化时过滤结果
var jsonText = JSON.stringify(book,["title","edition"]);  //序列化后的结果将只包含title和edition属性
// {"title":"javascript","edition":3}

var jsonText = JSON.stringify(book,function(key.value){
        switch(key){
            case "author":
                return value.join(",");
            case "year":
                return 2018;
            case "edition":
                return 4;
            default:
                return value;
        }
});

// {"title":"javascript","author":"wjz","edition":4,"year":2018}
//解析JSON字符串时,调用替换函数
var bookCopy = JSON.parse(jsonText,function(key,value){
    if (key == "author"){
        return "zjw";
    }else{
        return value;
    }
});

还可以定义toJSON()方法,返回自定义的JSON数据格式

var book ={
    title:"javascript",
    author:[
        "wjz"
    ],
    edition:3,
    year:2011,
    toJSON:function(){
            return this.title;
        }
};

var jsonText = JSON.stringify(book);
//"javascript"
  • 序列化对象时,顺序:(1)如果存在toJSON对象,则调用该方法,否则返回对象本身。(2)如果提供了函数过滤器,则传入函数过滤器的值是第1步的返回值。(3)如果传入第3个参数,则执行相应的格式化
阅读更多
版权声明:本文为博主原创文章,转载请务必附上文章网址,谢谢。 https://blog.csdn.net/zjw_python/article/details/79956190
个人分类: Javascript笔记
上一篇XML学习笔记3 XPath
下一篇Javascript学习笔记15 Ajax
想对作者说点什么? 我来说一句

JavaScript数组对象JSON学习笔记

2013年07月30日 9KB 下载

javascript 学习笔记

2009年04月21日 40KB 下载

JavaScript学习笔记

2011年11月13日 272KB 下载

Redis学习笔记整理

2017年11月14日 82KB 下载

json-lib 学习笔记 分享下

2009年11月11日 1.48MB 下载

Ajax&Json学习笔记

2017年08月01日 30KB 下载

没有更多推荐了,返回首页

关闭
关闭