JSON详解
首先要知道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详解的更多相关文章
- JSON详解(转)
JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格 ...
- JSON详解(转载)
JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...
- javaScript系列:JSON详解
JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...
- Spring Boot 之使用 Json 详解
Spring Boot 之使用 Json 详解 简介 Spring Boot 支持的 Json 库 Spring Web 中的序列化.反序列化 指定类的 Json 序列化.反序列化 @JsonTest ...
- 问题:JsonConvert;结果:JSON详解
JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格 ...
- JSON详解+ C# String.Format格式说明+ C# ListView用法详解 很完整
JSON详解 C# String.Format格式说明 C# ListView用法详解 很完整
- c++ json 详解
一. 使用jsoncpp解析json Jsoncpp是个跨平台的开源库,首先从http://jsoncpp.sourceforge.net/上下载jsoncpp库源码,我下载的是v0.5.0,压缩包大 ...
- cookie、json详解
什么是cookie 1.cookie是存储于访问者计算机中的变量2.cookie是浏览器提供的一种机制3.可以由js控制(设置.读取.删除)4.cookie可以实现跨页面全局变量可以跨越同域名下多个网 ...
- C# - JSON详解
最近在做微信开发时用到了一些json的问题,就是把微信返回回来的一些json数据做一些处理,但是之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列 ...
随机推荐
- java+eclipse+selenium环境搭建
这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. ...
- mysqldump和xtrabackup备份原理实现说明
背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...
- mysql 基础使用
mysql服务器本地root用户默认没有密码,使用 "mysql -u root -p" 即可登陆.linux本地用户可以以任意用户名登陆mysql,但是没有任何权限,没有意义.m ...
- vs2013在使用ReportView11时遇到的问题
最近在做项目中用到2013中的ReportView11 在本机IIS中使用完全没问题 但是放到服务器上总是出问题 解决办法:(1)首先在自己机器上开发的时候 是不用引用 Microsoft.R ...
- 数据库sql语句规则
sql练习: 创建一个名称为mydb1的数据库. create database mydb1; 查看库 show databases; 创建一个使用utf-8字符集的mydb2数据库. create ...
- Linux 添加完硬盘后,如何挂载和分区、以及其他的分区不足,如何从新的硬盘上挂载借用
挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的 ...
- linux的相关指令命令
ls:查看当前所在的目录 whoami:查看当前所在的用户名 who:(查看所有的正在使用的用户名) id:唯一的识别编号(组所在的识别编号) uname -a:显示当前操作系统的版本 cd:切换工 ...
- Linux 安装Mono环境 运行ASP.NET(二)
一.安装libgdiplus 前面我们已经安装了apr.apr_util.pcre和httpd apache .现在我们来安装libgdiplus Libgdiplus是一个Mono库,用于对 ...
- 分布式之ZookeeperMac安装
Zookeeper用于分布式计算中的协调员,观察员,观察者,分布式锁,在系统中利用Zookeeper来处理事件通知,队列,锁等功能. 使用brew安装 zookeeper. 可参考:http://bl ...
- hdu 2222 Keywords Search
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222 思路:裸AC自动机,直接贴代码做模板 #include<stdio.h> #includ ...