JSON

一、什么是JSON

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

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

-JSON独立于语言

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

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

二、用途

JSON的用途可归结为如下:

1、JSON提供了一种优秀的面向对象的方法,以便将元素数据缓存到客户机上

2、JSON帮助分离了验证数据和逻辑

3、JSON帮助为web应用程序提供了Ajax的本质

三、与XML的异同

类似XML:

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

不同与XML:

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

四、为什么要使用JSON

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

使用 XML:

读取 XML 文档

使用 XML DOM 来循环遍历文档

读取值并存储在变量中

读取 JSON 字符串

用 eval() 处理 JSON 字符串

使用JSON:

读取 JSON 字符串

用 eval() 处理 JSON 字符串

五、JSON在Java中的使用

1、语法规则:JSON语法是Javascript对象表示法语法的子集。数据在名称/值对中且由逗号分隔,{}保存对象,[]保存数组

2、名称/值对:JSON数据的书写格式是:名称/值对,名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:如:"firstName" : "John",等价于firstName="John"这条JavaScript语句。

3、值:JSON值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null

4、对象:JSON 对象在花括号中书写,对象可以包含多个名称/值对:{ "firstName":"John" , "lastName":"Doe" }

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

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

六、实例

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

              var txt = '{ "sites" : [' +
              '{ "name":"xxx" , "url":"www.xxx.com" },' +
              '{ "name":"yyy" , "url":"www.yyy.com" },' +
              '{ "name":"zzz" , "url":"www.zzz.com" } ]}';

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

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

在网页中使用 JavaScript 对象:实例源码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>xxxyyyzzz</title>
</head>
<body>
<h2>从 JSON 字符串中创建对象</h2>
<p>
网站名: <span id="name"></span><br> 
网站地址: <span id="url"></span><br> 
</p> 
<script>
var txt = '{ "sites" : [' +
'{ "name":"xxx" , "url":"www.xxx.com" },' +
'{ "name":"yyy" , "url":"www.yyy.com" },' +
'{ "name":"zzz" , "url":"www.zzz.com" } ]}';

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

document.getElementById("name").innerHTML=obj.sites[0].name 
document.getElementById("url").innerHTML=obj.sites[0].url 
</script>
</body>
</html>

本文参考于:http://www.w3school.com.cn/json/json_eval.asp

http://www.runoob.com/json/json-eval.html

JAVAEE第七周的更多相关文章

  1. JAVAEE 第七周

    JSON语法: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...

  2. javaee 第七周作业

    一.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...

  3. 20145213《Java程序设计》第七周学习总结

    20145213<Java程序设计>第七周学习总结 教材学习内容总结 周末快乐的时间总是短暂的,还没好好感受就到了要写博客的周日.有人喟叹时间都去哪儿了,那本周我们就来认识一下Java里的 ...

  4. 20145304 Java第七周学习报告

    20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ...

  5. 20145330第七周《Java学习笔记》

    20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...

  6. 20145337《JAVA程序设计》第七周学习总结

    20145337 <Java程序设计>第七周学习总结 教材学习内容总结 时间的度量 格林威治时间GMT,世界时UT,国际原子时TAI,世界协调时间UTC 就目前来说,即使标注为GMT,实际 ...

  7. 第七周PSP

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:20 10:34 20 58 68 分析与 ...

  8. Linux内核设计第七周 ——可执行程序的装载

    Linux内核设计第七周 ——可执行程序的装载 第一部分 知识点总结 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么得来的 编译链接的过程 预处理阶段 gcc -E -o XX.cpp ...

  9. 20145320 《Java程序设计》第七周学习总结

    20145320 <Java程序设计>第七周学习总结 教材学习内容总结 13章 时间与日期 时间的度量: 格林威治标准时间(GMT时间),现已不作为标准时间使用. 世界时(UT),秒的单位 ...

随机推荐

  1. SAP 打印自动导出PDF本地文件(自己做的例子)

    smartforms导出PDF: 常用函数有: convert_otfconvert_otfspooljob_2_pdfconvert_abapspooljob_2_pdfCONVERT_OTF_2_ ...

  2. grep 以及find 命令

    grep 以及find 命令 1. find 命令 Linux 下find 命令在目录结构中搜索文件,并执行指定的操作.Linux 下find 命令提供了相当多的查找条件,功能很强大.由于find 具 ...

  3. ajax错误类型大全

    https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ajax错误类型大全

  4. server.Transfer不工作

    https://www.codeproject.com/Questions/56736/How-to-use-Server-Transfer-from-Ajax-UpdatePanel For Ser ...

  5. 15_Raid及mdadm命令 _LVM

    磁盘管理:     机械式硬盘:     U盘,光盘,软盘,硬件,磁带 ln [ -s -v ] SRC DEST 硬链接:     1.只能对文件创建,不能应用于目录     2.不能跨文件系统   ...

  6. js把某个div或其他元素用图片的形式导出或下载

    很多时候需要用到把页面上的某个块元素用图片的形式导出来,例如导出一些表格构成的单据 思路:把指定的html内容转换成canvas,然后再转换成图片 这里推荐使用这两个库 <script src= ...

  7. HTML5 API分享

    Facebook - http://developers.facebook.com/ 人人网开放平台 - http://dev.renren.com/ 51.com开放平台 - http://deve ...

  8. js ++i和i++的区别

    ++i和i++的定义: 1.  如果用前缀运算符对一个变量增1(减1),则在将该变量增1(减1)后,用新值在表达式中进行其他的运算.    2. 如果用后缀运算符对一个变量增1(减1),则用该变量的原 ...

  9. snakemake使用小结

    首先在linux 里配置conda 下载 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linu ...

  10. 一款好用的JS时间日期插件layDate

    觉得这个插件很不错,使用起来也很方便,推荐使用 1.插件截图 2.插件配置 选择很多,配置也很简单,插件官网:https://www.layui.com/laydate/配置说得很明确,基本操作就是: ...