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

猜你喜欢

转载自www.cnblogs.com/fancy-dawning/p/8857084.html