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()方法的第三个参数,使字符串进行缩进,方便调试。

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

JSON快速入门

一、json是什么? JavaScript Object Notation 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Gradle2.0用户指南翻译——第十章. Web 应用程序快速入门

第十章. Web 应用程序快速入门 Chapter 10. Web Application Quickstart 本章还在完善中。 This chapter is a work in progres...

营养计算器操作指南--快速入门

营养计算器
  • yindl
  • yindl
  • 2014年11月10日 12:58
  • 636

《iPhone 3D 编程》第一章:快速入门指南

**************************************************************************** 申明:本系列教程原稿来自网络,翻译目的仅供学...
  • favormm
  • favormm
  • 2011年10月19日 16:35
  • 9032

Spark快速入门指南 – Spark安装与基础使用

本文转载自Spark快速入门指南 – Spark安装与基础使用 Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 正如其名,最大的特点就是快(Ligh...

比特币矿工快速入门指南(zhuan)

比特币矿工快速入门指南 cheungmine 比特币(bitcoin)实在太火了,如果说一堆的原理肯定是耽误大家时间赚钱,就直接告诉大家怎么挖矿就得了。必备之材料清单如下: 1)...
  • kylin70
  • kylin70
  • 2013年12月01日 13:41
  • 1756

在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南

如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣。尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear...

Linux平台:Alexa语音服务快速入门指南

概述 用于C++的AVS设备SDK为Alexa语音服务提供了一个现代化的C++(11或更高版本)接口,允许开发人员将智能语音控制添加到连接的产品中.它是模块化和抽象的,提供组件去处理离散功能,例如语音...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON快速入门指南
举报原因:
原因补充:

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