JSON学习笔记

JSON学习笔记

Web学习笔记之——Json


什么是JSON

JSON: JavaScript Object Notation(JavaScript 对象表示法)

JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解

JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

优点:

  • JSON 是存储和交换文本信息的语法。类似 XML。
  • JSON 比 XML 更小、更快,更易解析。

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有”自我描述性”(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

使用 XML

  1. 读取 XML 文档
  2. 使用 XML DOM 来循环遍历文档
  3. 读取值并存储在变量中

使用 JSON

  1. 读取 JSON 字符串
  2. 用 eval() 处理 JSON 字符串

JSON 实例

简单实例

这个 sites 对象是包含 3 个站点记录(对象)的数组。

{
"sites": [
{ "name":"Derwer" , "url":"www.derwer.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"百度" , "url":"www.baidu.com" }
]
}

web实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON-Web实例</title>
</head>
<body>
<h2>JavaScript 创建 JSON 对象</h2>
<p>
网站名称: <span id="jname"></span><br /> 
网站地址: <span id="jurl"></span><br /> 
网站标语: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= {
	"name":"Derwer",
	"url":"www.derwer.com", 
	"slogan":"理想 哲思 白日梦!"
};
document.getElementById("jname").innerHTML=JSONObject.name 
document.getElementById("jurl").innerHTML=JSONObject.url 
document.getElementById("jslogan").innerHTML=JSONObject.slogan 
</script>

</body>
</html>

JSON语法

JSON 语法是 JavaScript 语法的子集。

JSON 语法规则

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。 名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"UserId" : "Raphael"

这很容易理解,等价于这条 JavaScript 语句:

UserId = "Raphael"

JSON 值

JSON 值可以是:

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

JSON 对象

JSON 对象在花括号中书写: 对象可以包含多个名称/值对:

{ "WebName":"Derwer" , "url":"www.derwer.com" }

这一点也容易理解,与这条 JavaScript 语句等价:

WebName = "Derwer"
url = "www.derwer.com"

JSON 数组

JSON 数组在方括号中书写: 数组可包含多个对象:

{
"sites": [
    { "name":"Derwer" , "url":"www.derwer.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"百度" , "url":"www.baidu.com" }
]
}

上述例子中,对象 “sites” 是包含三个对象的数组。每个对象代表一条站点(信息)的记录。

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。 通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值: 实例

var sites =  [
    { "name":"Derwer" , "url":"www.derwer.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"百度" , "url":"www.baidu.com" }
];

可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

sites[0].name;

返回的内容是:

Derwer

可以像这样修改数据: sites[0].name=”Derwer | 世界就在你眼前”;

JSON 文件

JSON 文件的文件类型是 “.json” JSON 文本的 MIME 类型是 “application/json”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据库学习

    【不满足第一范式】:1.主键重复。2. StuInfo字段可以再分 |StuId(主键学号)| StuName (姓名)| StuIn...

    李郑
  • 计算机组成原理-运算方法之数据格式

    数据格式 先说下数据格式,在选择计算机数的表示方式时,需要考虑以下几个因数: 要表达的书的类型(小数,整数,实数,复数) 可能遇到的数值范围 数值精度 数据存储...

    李郑
  • ASP.NET MVC 页面校验和区域

    通常来说,web项目通常使用前后端混合校验,使用诸如:Bootstrap Validator,jquery.validate.js,配合 MVC框架来做校验则。

    李郑
  • JSON基础

    本文整理自《JSON必知必会》一书,主要是章节的简介,把前三个章的内容简单叙述了,算是需要JSON的基础知识。以后有机会看情况再写一些Java的jsonobje...

    FunTester
  • SQL Server 2016 JSON原生支持实例说明

    背景 Microsoft SQL Server 对于数据平台的开发者来说越来越友好。比如已经原生支持XML很多年了,在这个趋势下,如今也能在SQLServer2...

    用户1217611
  • JS高级测试: 下列JSON说法不正确的是?

    使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:

    舒克
  • 9 款你不能错过的 JSON 工具

    JSON 吸引了工具构建者的注意,它们开发了用于重新格式化、验证和解析 JSON 的众多工具,这不足为奇。这些工具既有在 Web 浏览器中运行的在线实用程序,又...

    GitHubDaily
  • 9 款你不能错过的 JSON 工具

    JSON 吸引了工具构建者的注意,它们开发了用于重新格式化、验证和解析 JSON 的众多工具,这不足为奇。这些工具既有在 Web 浏览器中运行的在线实用程序,又...

    用户6543014
  • Go JSON

    如今在网络编程中JSON这种数据格式占据了较大的市场,如果不出意外,几乎新开发的数据交互,都会使用JSON这种轻量级的数据格式来处理数据交互。所以,怎么解析,转...

    icepy
  • MySQL 5.7 JSON 实现简介

    本文主要介绍了MySQL在5.7.7之后引入的原生JSON支持的特性,说明了引入JSON类型的好处,并结合具体的示例介绍了MySQL在JSON类型上对外的接口以...

    腾讯云数据库团队

扫码关注云+社区

领取腾讯云代金券