首先要知道JSON是一种轻量级的数据格式,不是一种编程语言,因此其他语言也可以使用。

一、JSON语法

JSON语法可以表现为下面三种值:

  1.简单值:字符串、数值、布尔值和null,如"hello json",3,false,null。但是JSON不支持undefined

  2.对象:一种复杂的数据类型,表示的是一组无序的键值对,栗子如下:

 {
"name":"guozhu",
"age":23,
"hobby":{
"sport":"bicyle",
"music":"guoge"
}
}//每个键值对中的值可以是简单值也可以是复杂数据类型的值

  3.数组:与对象一样也是复杂的数据类型,但是它表示的是一组有序的列表,因此可以通过索引值来访问。  

[
"xiaohua",23,{
"hobby":"bicyle",
"eat":"apple"
}
]//数组的值可以是简单值、复杂数据类型的值

二、JSON与JS

相同点:JSON简单值与JS语法相同

不同点:1.JSON字符串与JS字符串区别在于JSON字符串必须使用双引号

    2.JSON对象没有声明变量、没有末尾分号且对象的属性必须加双引号

    3.JSON数组与JSON对象一样没有变量和分号

三、JSON.stringify()方法

stringify()方法用于将JS对象转化为JSON字符串,此方法有三个参数:第一个参数JS对象、第二个参数过滤器、第三个参数是一个选项表示是否在JSON字符串中保留缩进

 // JS对象
var person = {
name:"xiaohua",
age:19
}
var joPerson = JSON.stringify(person);
console.log(joPerson);//{"name":"xiaohua","age":19}

上面代码只传入JS对象,打印结果已注释出来,可以看到stringify()输出的JSON字符串不包含空格字符或缩进

现在传入第二个参数过滤器(可以是一个数组或函数)打印一下

 var person = {
name:"xiaohua",
age:19,
}
var joPerson = JSON.stringify(person,["age"]);
console.log(joPerson)//{"age":19}

上面代码第二个参数传入的是一个数组,其中有一个字符串与person对象的属性相对应,打印出来的结果也只包含与其对应属性的值

现在传入第三个参数(数值或字符串)用于缩进

 var person = {
name:"xiaohua",
age:19,
}
var joPerson = JSON.stringify(person,null,"**");
console.log(joPerson);

打印出来的结果如下图

如上面代码传入的是一个字符串而非数值,则这个字符串在打印出来的JSON字符串中被用作缩进字符串

四、JSON.parse()方法

该方法用于将JSON字符串解析成JS对象

 var person = {
name:"xiaohua",
age:19,
}
var joPerson = JSON.stringify(person);
console.log(joPerson);//{"name":"xiaohua","age":19}
var jsPerson = JSON.parse(joPerson);
console.log(jsPerson);

上面代码先用JSON.stringify()方法将person对象转换成JSON字符串,再利用JSON.parse()方法将joPerson(JSON字符串)转换成JS对象

小结:

1.JSON是一个轻量级的数据格式

2.JSON使用JavaScript语法的子集表示对象、数组、字符串、数值、布尔值和null

3.JSON.stringify()方法将JS对象转换成JSON字符串

4.JSON.parse()方法将JSON字符串转换成JS对象

JSON详解的更多相关文章

  1. JSON详解(转)

    JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格 ...

  2. JSON详解(转载)

    JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...

  3. javaScript系列:JSON详解

    JSON详解   JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...

  4. Spring Boot 之使用 Json 详解

    Spring Boot 之使用 Json 详解 简介 Spring Boot 支持的 Json 库 Spring Web 中的序列化.反序列化 指定类的 Json 序列化.反序列化 @JsonTest ...

  5. 问题:JsonConvert;结果:JSON详解

    JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格 ...

  6. JSON详解+ C# String.Format格式说明+ C# ListView用法详解 很完整

    JSON详解 C# String.Format格式说明 C# ListView用法详解 很完整

  7. c++ json 详解

    一. 使用jsoncpp解析json Jsoncpp是个跨平台的开源库,首先从http://jsoncpp.sourceforge.net/上下载jsoncpp库源码,我下载的是v0.5.0,压缩包大 ...

  8. cookie、json详解

    什么是cookie 1.cookie是存储于访问者计算机中的变量2.cookie是浏览器提供的一种机制3.可以由js控制(设置.读取.删除)4.cookie可以实现跨页面全局变量可以跨越同域名下多个网 ...

  9. C# - JSON详解

    最近在做微信开发时用到了一些json的问题,就是把微信返回回来的一些json数据做一些处理,但是之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列 ...

随机推荐

  1. [MySQL]索引类型总结和使用技巧以及注意事项

    一.普通索引 这是最基本的索引,它没有任何限制.它有以下几种创建方式: 1.创建索引 CREATE INDEX [indexName] ON [mytable] ([column][(length)] ...

  2. markdownTest

    MARKDOWNTEST 11111111111111 有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起--它就是Markdown 有一种神奇的语言,它比html还简单,它巧妙地将 ...

  3. EF操作多数据库

    1.Account3_Register_DB_Model作为(空)模板库,根据此模板生成的其他数据除了数据库名称不一样,其他表,视图,字段等等都一致 2.Account3_Platform_Maste ...

  4. oracle打补丁

    oracle 数据库补丁安装(单实例) ------------24006111 注:务必先安装24006111再安装24315821,否则无法进行正常的补丁安装流程.1.关闭数据库监听和数据库实例 ...

  5. vue-resource

    代替ajax操作 在mian.js里面引入 import vueResource from 'vue-resource' mian.js会 加载全局js 下面介绍的是基于Vue实例的方式,一般项目只需 ...

  6. Ubuntu架设FTP

    1.安装vsftpd >sudo apt-get install vsftpd 2.安装好ftp后默认是会自动创建ftp用户的,然后我们设置ftp用户的密码 >sudo passwd ft ...

  7. 牛顿方法(Newton's Method)

    在讲义<线性回归.梯度下降>和<逻辑回归>中我们提到可以用梯度下降或梯度上升的方式求解θ.在本文中将讲解另一种求解θ的方法:牛顿方法(Newton's method). 牛顿方 ...

  8. jQuery中width、innerWidth、outerWidth的区别

    原文:摘自http://www.canaansky.com/blog/107/ 在css的盒子模型中,最内部是content area,然后是padding.border.margin 那么width ...

  9. node.js express架构安装部署

    安装-g:表示全局安装(必须以安装node.js) npm install -g express-generator 创建一个express架构的项目文件夹express testWebApp 在pa ...

  10. Python 判断字符串是否为数字

    转载: http://www.runoob.com/python3/python3-check-is-number.html 以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为 ...