JS基础5

作者: pp_5793 | 来源:发表于2018-10-29 21:07 被阅读0次

JSON

JSON格式

它是一种用于数据交换的文本格式,用来取代之前的XML。
JOSN对象:
它有两个静态对象

JSON.stringify()方法

是用来把一个值转换为JSON字符串。该字符串符合JSON格式,并且可被JSON.parse()方法还原。
注意转成JSON格式时有下面常犯的错误:

console.log(JSON.stringify('fool')==="\"fool\"");
console.log(JSON.stringify('fool'));
输出为:true
   
"fool"

从以上代码中,我们要注意当转换单引号的值时,它会转换成双引号,但是在Javascript中不能直接识别两个双引号,它会有歧义产生,会产生编译错误,所以在第一行代码中要写成"\"fool\""的形式,才会显示true

它还可以有两个参数,第二个参数可以是个函数,其中如果是一个数组,它可以指定需要传换成JSON格式的属性:

var obj={
    'p1':'value',
    'p2':'value1'
}
var selectesProperty=['p2'];
console.log(JSON.stringify(obj,selectesProperty));

输出为:

{"p2":"value1"}
[Finished in 0.3s]

注意这里面返回的是名为p2的属性的整个内容,包括它的值,还有它只对对象的属性有效,对数组是无效的。
下面是第二个参数为函数时的例子:

function f(key,value){
if(typeof value==='number'){
    value=2*value;
}
return value;
}
console.log(JSON.stringify({'a':1,'b':2},f));

返回

{"a":2,"b":4}
[Finished in 0.3s]

这里返回的是传入对象的值,而且改变了其中的值,就是用了函数f。
这个方法还可以传入第三个参数,是为了加强转换的JSON格式的可读性,
比如第三个参数如果是数字,则表示在该JSON格式下前面会出现几个空格该数字是2,则前面就出现两个空格 但是最这个数有限制,最高是10,
写法:JSON.stringify('a',null,2)该格式的话虽然不报错但是参数3没有用到,如果第一个参数是一个对象的话才有用 比如JSON.stringify({'a':1},null,2)
如果是字符串,则还会加在该对象的属性名前面,注意写法,不要忘记加单引号:JSON.stringify({ p1:1, p2:2 }, null, '|-')

toJSON()方法

如果对象中有toJSON()方法的话,那么当JSON.stringify想转换该对象为JSON格式时 ,会使用toJSON方法的返回值作为参数,而忽略掉其他方法。

var user = {
  firstName: '三',
  lastName: '张',

  get fullName(){
    return this.lastName + this.firstName;
  },

  toJSON: function () {
    return {
      name: this.lastName + this.firstName
    };
  }
};

console.log(JSON.stringify(user));
// "{"name":"张三"}

除此之外,该方法还可以用来转换前面转换不了的正则表达式。具体见文档。

JSON.parse()方法

它可以用来把JSON格式转换为原来的值,它也可以有第二个参数,也就是可以用函数来限制其返回值。
注意传入该方法的参数必须是 正确的JSON格式。

相关文章

  • js基础5(this)

    1、this的认识 1. 默认绑定 全局环境中this默认绑定到window顶层对象 自执行函数this,也就是函...

  • JS基础5

    JSON JSON格式 它是一种用于数据交换的文本格式,用来取代之前的XML。JOSN对象:它有两个静态对象 JS...

  • JS基础(5)

    1、定时器 开定时器:setInterval(函数名,时间); 每隔一段时间执行一次函数,会连续不断执行过多长时间...

  • 前端知识体系

    1.JS基础 5 2.JS高级 5JS高级程序设计,各种api的应用,es6新增api的运用 3.CSS...

  • JS DOM基础

    javascript组成 ECMAScript: (3/5/6/7)它是JS语言的标准,规定了JS的编程语法和基础...

  • JaveScript基础之时间对象与引用类型

    关于JS基础类型、复杂类型的总结; 基础类型(5种)包括: Undefined、Null、String、Boole...

  • day5 js基础语法

    1、什么是js 2、js基础语法 3、变量 4、运算符 5、分之结构 6、循环 7、函数

  • H5鼠标拖拽移动

    刚开始学H5的js,所以就全用js做的,只是为了锻炼自己的js基础 以下就是我整个H5的代码

  • 第五章 js-web-api 上

    5-1 从基础知识到web-api JS基础知识:ECMA 262 标准 JS-Web-API:W3C 标准 W3...

  • js中String()、new String()探究

    js中的基础类型有6种5种基础类型:undefined null String Number Boolean1中引...

网友评论

      本文标题:JS基础5

      本文链接:https://www.haomeiwen.com/subject/rmlitqtx.html