以下内容来自W3school。

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

JSON 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更小、更快,更易解析。

什么是 JSON ?

•JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

•JSON 是轻量级的文本数据交换格式

•JSON 独立于语言 *

•JSON 具有自我描述性,更易理解

* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

一、JSON 简介

类似 XML

•JSON 是纯文本

•JSON 具有“自我描述性”(人类可读)

•JSON 具有层级结构(值中存在值)

•JSON 可通过 JavaScript 进行解析

•JSON 数据可使用 AJAX 进行传输

相比 XML 的不同之处

•没有结束标签

•更短

•读写的速度更快

•能够使用内建的 JavaScript eval() 方法进行解析

•使用数组

•不使用保留字

为什么使用 JSON?

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

使用 XML

•读取 XML 文档

•使用 XML DOM 来循环遍历文档

•读取值并存储在变量中

使用 JSON

•读取 JSON 字符串

•用 eval() 处理 JSON 字符串

二、JSON语法

JSON 语法是 JavaScript 语法的子集。

JSON 语法规则

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

•数据在名称/值对中

•数据由逗号分隔

•花括号保存对象

•方括号保存数组

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

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

Js代码

"firstName":"John"

"firstName" : "John"

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

Js代码

firstName ="John"

firstName = "John"

JSON 值

JSON 值可以是:

•数字(整数或浮点数)

•字符串(在双引号中)

•逻辑值(true 或 false)

•数组(在方括号中)

•对象(在花括号中)

•null

JSON 对象

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

Js代码

{"firstName":"John","lastName":"Doe"}

{ "firstName":"John" , "lastName":"Doe" }

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

Js代码

firstName ="John"

lastName ="Doe"

firstName = "John"

lastName = "Doe"

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

Js代码

{

"employees": [

{"firstName":"John","lastName":"Doe"},

{"firstName":"Anna","lastName":"Smith"},

{"firstName":"Peter","lastName":"Jones"}

]

}

{

"employees": [

{ "firstName":"John" , "lastName":"Doe" },

{ "firstName":"Anna" , "lastName":"Smith" },

{ "firstName":"Peter" , "lastName":"Jones" }

]

}

在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

例子:

Js代码

varemployees = [

{"firstName":"Bill","lastName":"Gates"},

{"firstName":"George","lastName":"Bush"},

{"firstName":"Thomas","lastName":"Carter"}

];

var employees = [

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName": "Carter" }

];

可以像这样访问 JavaScript 对象数组中的第一项:

Js代码  

employees[0].lastName;

employees[0].lastName;

返回的内容是:

Js代码  

Gates

Gates

可以像这样修改数据:

Js代码  

employees[0].lastName ="Jobs";

employees[0].lastName = "Jobs";

JSON 文件

•JSON 文件的文件类型是 ".json"

•JSON 文本的 MIME 类型是 "application/json"

三、JSON使用

把 JSON 文本转换为 JavaScript 对象

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

JSON 实例 - 来自字符串的对象

创建包含 JSON 语法的 JavaScript 字符:

Js代码  

vartxt ='{"employees":['+

'{"firstName":"Bill","lastName":"Gates" },'+

'{"firstName":"George","lastName":"Bush" },'+

'{"firstName":"Thomas","lastName":"Carter" }]}';

varobj = eval ("("+ txt +")");

document.getElementById("fname").innerHTML = obj.employees[1].firstName;

document.getElementById("lname").innerHTML = obj.employees[1].lastName;

var txt = '{"employees":[' +

'{"firstName":"Bill","lastName":"Gates" },' +

'{"firstName":"George","lastName":"Bush" },' +

'{"firstName":"Thomas","lastName":"Carter" }]}';

var obj = eval ("(" + txt + ")");

document.getElementById("fname").innerHTML = obj.employees[1].firstName;

document.getElementById("lname").innerHTML = obj.employees[1].lastName;

由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

Js代码  

varobj = eval ("("+ txt +")");

var obj = eval ("(" + txt + ")");

在网页中使用 JavaScript 对象:

例子:

Html代码  

First Name:

Last Name:

vartxt='{"employees":['+

'{"firstName":"Bill","lastName":"Gates" },' +

'{"firstName":"George","lastName":"Bush" },' +

'{"firstName":"Thomas","lastName":"Carter" }]}';

varobj=eval("(" + txt + ")");

document.getElementById("fname").innerHTML=obj.employees[1].firstName;

document.getElementById("lname").innerHTML=obj.employees[1].lastName;

First Name:

Last Name:

var txt = '{"employees":[' +

'{"firstName":"Bill","lastName":"Gates" },' +

'{"firstName":"George","lastName":"Bush" },' +

'{"firstName":"Thomas","lastName":"Carter" }]}';

var obj = eval ("(" + txt + ")");

document.getElementById("fname").innerHTML = obj.employees[1].firstName;

document.getElementById("lname").innerHTML = obj.employees[1].lastName;

JSON 解析器

提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。

Web 浏览器支持

Web 软件支持

•Firefox (Mozilla) 3.5

•Internet Explorer 8

•Chrome

•Opera 10

•Safari 4

•jQuery

•Yahoo UI

•Prototype

•Dojo

•ECMAScript 1.5

wps解析json数据_一些非常实用的JSON 教程相关推荐

  1. mysql 动态sql 解析json数据_在SQL 中生成JSON数据

    这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...

  2. python发送json数据_在Websockets上发送JSON

    我有一个简单的Python tornado Websockets服务器,从JavaScript客户端接收消息.我正在尝试发送JSON数据,我找到的唯一解决方案是将JSON对象转换成字符串JSON,发送 ...

  3. controller接收json数据_这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了

    前言 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本格式来存储和表示数据. 简洁和清晰 ...

  4. Python 解析构建数据大杂烩 -- csv、xml、json、excel

    Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...

  5. Esp8266 进阶之路28 【高级篇】教你轻松自如使用cJson在乐鑫 esp8266 如何解析一段json数据以及如何生成一段json数据。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  6. wps解析json数据_浏览器处理2500MB JSON文件的解析与绘图问题(实践分享,非战斗人员请忽略)...

    最近在做一个浏览器画数据图的任务. 任务其实很简单,浏览器通过ajax请求拿到服务端已经生成好的json文件,然后在前端浏览器绘制相应的折线图,饼状图等. 很丑陋的dataflow 起初我的做法 le ...

  7. java ajax解析json数据_利用AJAX向后台servlet传JSON数据,后台利用fastjson进行解析

    一,json的构建 JSON的格式分为两种,第一种类似于JavaScript中的对象(这里需要注意的是JS中的对象与java中的对象概念是不一样的,js可以在对象中定义属性,方法等,类似于java中的 ...

  8. java 生成json数据_解析和生成JSON数据

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...

  9. 发布json数据_技术分享 | MySQL 8.0.17 GA 发布!

    昨日 MySQL 官网正式发布 8.0.17 / 5.7.27 / 5.6.45 三个(维护)版本,距离上一个 GA 版本(8.0.16)发布时隔仅 88 天! MySQL 各开发团队的博客网站,同一 ...

最新文章

  1. html让ul的li自动居中,css ul li导航菜单居中问题解决方法
  2. fatal error: GL/glew.h: 没有那个文件或目录
  3. 抖音创作规范_实体店如何借势抖音为门店获客?
  4. (js技巧)input文本框回车或者失去光标触发事件
  5. linux的makefile -I(大写i)-L(大写l)-l(小写l)
  6. 到底买苹果XS还是XR_iPhone XS和XR买哪个?10个理由告诉你XS更好,贵是有原因的!...
  7. win10系统访问共享文件速度过慢的解决方法
  8. 华科计算机硕士毕业论文,华中科技大学硕士毕业论文要求_华中科技大学2020年硕士招生简章_华中科技大学研究生院...
  9. 特征工程(五): PCA 降维
  10. crypto-CommonModulusAttack(GXYCTF2019)
  11. python文件流_python--文件流读写
  12. 【渝粤教育】电大中专跨境电子商务理论与实务 (4)作业 题库
  13. windows计划任务 0xff_Windows服务器入侵检测排查方法
  14. vue项目yarn初始化项目报错error D:\xxx\node_modules\node-sass;终极解决方案
  15. excel matlab日期,Excel日期格式在matlab中的转换
  16. E. Tournament
  17. 骑缝章 Java_Java实现在PDF中添加骑缝章
  18. Direct3D 11 总结 —— 3 初始化 direct3D,并改变窗口颜色
  19. html table vtop,10-10-12 分页机制
  20. java毕业设计基于SpingBoot的剧本杀管理系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. word拼写检查自定义词典下载_如何在Word中限制拼写检查到主词典 | MOS86
  2. rust sqlx连接pg数据库时区问题
  3. 全自动指纹门锁方案设计解析
  4. 10个Scratch热门作品(4)
  5. Java操作es 查询时 [search_phase_execution_exception] all shards failed
  6. 加深昨天的話題,把一些模糊的概念統一一下 日期:2004-05-19。
  7. 雷军首度公开金山成功的“七种武器”
  8. mysql is null优化_如何优化mysql的is null?
  9. ACP 学习-06-对象存储 OSS
  10. H5移动端实现左右滑屏切换页面