JSON快速入门指南

原创 2016年04月22日 18:46:36

JSON是什么

JSON(JavaScript对象表示法 JavaScript Object Notation),是存储和交换文本信息的语法,轻量级的文本数据交换格式,类似XML,但是比XML更小、更快、更容易解析。
JSON独立于各种编程语言平台,并且几乎所有的主流编程语言都内置了对JSON数据格式的支持。


JSON语法规则

JSON语法是JavaScript对象表示法语法的子集:

  • 数据以名/值 对的形式表示
  • 数据之间以逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON值

JSON名值对包括字段名称(包含在双引号中),后面一个冒号,然后是值,如:

"username": "Jessica"

JSON值可以包含以下多种类型:

  • 数字(整数和浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON对象和JSON数组

JSON对象包含在花括号中,可以包含多个名/值对,其值可以为数组;JSON数组包含在方括号中,可以包含多个对象。JSON既可以以花括号开头,也可以以方括号开头,JSON对象和JSON数组可以互相嵌套,如:

{
    "users": [
        {"username":"Jacky",age:30},
        {"username":"Jessica",age:23},
        {"username":"James",age:42}
    ]
}

JSON文件

  • json文件的后缀为:”.json”
  • JSON文件的MIME类型为:“application/json”

JSON解析和序列化

早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的子集,因此eval()函数可以解析并返回JavaScript对象和数组。
ECMAScript 5对解析JSON的行为进行了规范,定义了全局对象JSON。

JSON解析

使用JSON.parse()把字符串解析为JSON对象或数组。

//返回JSON对象
var jsonStr1 = '{"username":"Jessica","age":23}';
var jsonObj = JSON.parse(jsonStr1);
console.log(jsonObj.username); //Jessica
console.log(jsonObj.age) //23

//返回JSON数组
var jsonStr2 = '[{"username":"Jacky","age":30}, {"username":"Jessica","age":23}]';
var jsonArr = JSON.parse(jsonStr2);
for(var i=0;i<jsonArr.length;i++) {
    console.log(jsonArr[i].username); //Jacky Jessica
}

JSON序列化

使用JSON.stringify()把JSON对象或数组序列化为字符串。

//序列化JSON对象
var jsonObj = {
    "username": "Jessica",
    "age": 23
};
var jsonStr1 = JSON.stringify(jsonObj);
console.log(jsonStr1); //{"username":"Jessica","age":23}

//序列化JSON数组
var jsonArr = [
    {"username":"Jacky","age":30},
    {"username":"Jessica","age":23}
];
var jsonStr2 = JSON.stringify(jsonArr, null, 2);
console.log(jsonStr2); 
/* 输出结果:
[
  {
    "username": "Jacky",
    "age": 30
  },
  {
    "username": "Jessica",
    "age": 23
  }
]
*/

*另外,当序列化后的字符串比较长时,可以通过设置JSON.stringify()方法的第三个参数,使字符串进行缩进,方便调试。

版权声明:本文为博主原创文章,可以转载,但请添加原文链接。

相关文章推荐

关于CSS布局的核心概念的快速入门指南

关于CSS布局的核心概念的快速入门指南 # CSS布局的核心流程 CSS布局的过程是‘’‘自顶向下’‘’的。即是说,最顶层的body元素对应最外面window的大小,父元素作为子元素的容器。当...
  • cteng
  • cteng
  • 2017-05-31 20:19
  • 378

《Python3程序开发指南(第二版)》第1章 过程型程序设计快速入门 练习

1. bigdigits.py程序的一个变形,不再打印*,而是打印具体的数字。

Oracle RMAN快速入门指南

前言:    这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测试成功(因为这个环境比较容易实现)。    本文借鉴了...

GForms 快速入门指南

本文旨在帮助您快速安装、创建及运行GForms应用。 1.   启动GForms Eclipse 如果您没有GForms安装介质,请到如下地址:  下载最新的安装介质。 启动GForms Ecl...

30分钟--Spark快速入门指南

Spark快速入门指南 – Spark安装与基础使用  2016-01-15 (updated: 2016-03-07) 6309 29 Apache Spark 是一个新兴的大数据处理通用引...

IntelliJ IDEA 快速入门指南

运行你的第一个Java应用程序 开始构建项目 相关软件 Idea创建java项目步骤内容简介 运行你的第一个Java应用程序 熟悉主界面 智能编码 简单的项目配置 构建您的项目 运行和调试应用程序 运...

ExtJS快速入门指南

转自http://blog.csdn.net/heyuanjia520/article/details/16339983 1 ExtJS快速入门指南 一、ExtJS 框架简介.............

JWPlayer快速入门指南(中文)

将JW Player嵌入到网页中非常的简单,只需要进行如下3个步骤: 1、解压mediaplayer-viral.zip文件,将jwplayer.js和player.swf文件拷贝到工程中; 2、...

Spark快速入门指南(Quick Start Spark)

这个文档只是简单的介绍如何快速地使用Spark。在下面的介绍中我将介绍如何通过Spark的交互式shell来使用API。 Basics   Spark shell提供一种简单的方式...

Apache MINA 快速入门指南-时间服务器

最近用到Socket套接字编程,在服务器监听方面还没有具体思路,朋友推荐了Apahce Mina,就在官方看了一下快速入门文档。原文是英文的,学习之余就将它翻译出来和大家共享!关于Mina的中文简介内...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)