博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS笔记(14): JSON格式处理器
阅读量:7051 次
发布时间:2019-06-28

本文共 2347 字,大约阅读时间需要 7 分钟。

一、关于JSON

  • JSON格式相关规定:

    • 1.复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
    • 2.原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
    • 3.字符串必须使用双引号表示,不能使用单引号。
    • 4.对象的键名必须放在双引号里面。
    • 5.数组或对象最后一个成员的后面,不能加逗号
  • JSON格式处理器:

    • 用来处理普通值和JSON文本之间的转换
  • JSON字符串:

    • 用JSON格式写的文本
  • JSON处理器有两个静态方法:

    • 1.JSON.parse()
    • 2.JSON.stringify()

二、JSON.stringify()

JSON.stringify()

  • 将其他类型的值转换为JSON字符串

  • JSON的第二个参数(不常用到,这部分可忽略):

    • 1.用来指定可以转换成JSON字符串的属性(只对普通对象有效)
    • 2.也可以是一个函数,转换的JSON字符串会变味函数的返回值;此处,函数可以有两个参数(key,value),分别为对象键值对的属性名和属性值,如果属性值是数字,可以做数学处理,返回处理后的字符串
  • JSON还有第三个参数,也不常用到,感兴趣的朋友可参考其他文档

console.log(JSON.stringify(123)); //'123'console.log(JSON.stringify('123')); //'"123"'console.log(JSON.stringify(true)); // 'true'console.log(JSON.stringify('true')); //'"true"'console.log(JSON.stringify(null)); //'null'console.log(JSON.stringify({ name: 'Tom' })); //'{"name":"Tom"}'console.log(JSON.stringify({ undefined, name: 'Tom' })); //'{"name":"Tom"}' 对象中的undefined被浏览器过滤掉console.log(JSON.stringify([1, { name: 'Tom' }])); //'[1,{"name":"Tom"}]'console.log(JSON.stringify([undefined, { name: 'Tom' }])); //'[null,{"name":"Tom"}]' 数组中的undefined转为nullconsole.log(JSON.stringify(/^\d$/)); //{} 正则会转为空对象复制代码
//JSON的第二个参数:指定可以转换成JSON字符串的属性let obj = {    name: 'Tom',    age: 18,    id: 123}console.log(JSON.stringify(obj, ['name', 'id'])); //'{"name":"Tom","id":123}'复制代码
//JSON.stringify方法的第二个参数是函数的情况function fn() {    return 123};console.log(JSON.stringify({ a: 1 }, fn)); //'123'function fn1(key, value) {    typeof value === 'number' ? value++ : null; //为什么这非得先判断一下呢,直接写下面的value++就不可以 ,我也不明白为什么    // value++    return value};console.log(JSON.stringify({ a: 1, b: 2 }, fn1)); //{"a":2,"b":4} function fn3(key, value) {    typeof value === 'string' ? value = 'Jerry' : null;    // value = 'Jerry'    return value};console.log(JSON.stringify({ name: 'Tom' }, fn3)); //{"name":"Jerry"}复制代码

三、JSON.parse()

  • JSON.parse() 将 JSON 字符串转换成其他值
  • JSON.parse()的第二个参数(不常用到,可忽略): 可以是个函数,函数返回值会改变对象的属性值
console.log(JSON.parse('123')); //123console.log(JSON.parse('"123"')); //"123"console.log(JSON.parse('true')); //trueconsole.log(JSON.parse('null')); //nullconsole.log(JSON.parse('{"name":"Tom"}')); //{name: "Tom"}复制代码
//JSON.parse()的第二个参数是函数的情况function f(key, value) {    if (key === 'a') {        return value + 10;    }    return value;}console.log(JSON.parse('{"a": 1, "b": 2}', f)); // {a: 11, b: 2}复制代码

转载地址:http://revol.baihongyu.com/

你可能感兴趣的文章
分析乱码的超强文章
查看>>
SpringBoot | 第十四章:基于Docker的简单部署
查看>>
Android编程小技巧
查看>>
OSChina 周一乱弹 ——程序员和产品经理的最终决战
查看>>
Git使用详解
查看>>
nginx+php-fpm
查看>>
tortoiseHG
查看>>
我不怕吃苦, 只怕找不到方向,害怕虚度青春
查看>>
App的定位和目标
查看>>
多线程异常捕获
查看>>
[4/N] 论得趣
查看>>
[0/N] 论得趣
查看>>
最新SpringMVC框架搭建入门教程
查看>>
滴滴影音(ddPlayer)
查看>>
Scala实现REST操作
查看>>
开放平台鉴权以及OAuth2.0介绍
查看>>
Gnu/Linux主机建议安装的性能工具
查看>>
工作小经验
查看>>
Spring Boot基础教程——web 应用开发-Servlets, Filters, listeners
查看>>
a标签上的点击事件
查看>>