JSON学习

本节摘要:最近在做系统的外围接口,工作中涉及到了JSON这个知道点,本节主要是对JSON的学习做一个简单的记录。

preparation

1.关于JSON的介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

JSON建构于两种结构:

1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

2.下载JSON.js文件,主要使用的是json.js中的toJSONString()函数

http://files.cnblogs.com/java-pan/JSON-js.zip

3.环境介绍

系统环境:WIN7、IntelliJ IDEA 8.1.2(使用此编辑器的主要原因是此IDE对js很好的提示功能)

项目介绍:

JSON学习

本次用到的只有两个文件,即JSON.html和json.js

start

拷贝json.js库文件到js文件下下,然后新建JSON.html文件,代码如下:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
         "http://www.w3.org/TR/html4/loose.dtd"> 
 <html> 
 <head> 
     <title>JSON的学习</title> 
     <!--导入json的js文件,注意路径,采用的是相对路径--> 
     <SCRIPT type="text/javascript" SRC="js/json.js"></SCRIPT> 
     <script type="text/javascript"> 
 function json() { 
 //JSON 
 // 1.表示 名称 / 值对的方式    并赋值给一个json1变量 
 var json1 = {"name":"王五","age":20 }; //JSON 更容易使用,而且可读性更好
 
 //2。表示数组       当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性 
 //有一个名为 people的变量,值是包含2个条目的数组,每个条目是一个人的记录 
 //赋值给一个json2变量 
 var json2 = {"people":[ 
                 { 
 "name": "张三", 
 "age":24 
                 }, 
                 { 
 "name": "李四", 
 "age":25 
                 } 
             ]};
 
 //表示多个值(每个值包含多个记录) 
 //能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors)之间, 
 // 记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式 
 //赋值给一个json3变量 
 var json3 = { "programmers": [ 
                 { 
 "name": "Brett", 
 "age":22 
                 }, 
                 { 
 "name": "Jason", 
 "age":33 
                 } 
             ],"authors": [ 
                 { 
 "name": "Isaac", 
 "age": 44 
                 }, 
                 { 
 "name": "Tad", 
 "address": "上海徐汇区" 
                 } 
             ] } ;
 
 
 //弹出来的都是Object 对象 
             alert("json1=" + json1); 
             alert("json2=" + json2); 
             alert("json3=" + json3);
 
 //访问数据 
             alert("此值应该是张三,实际是" + json2.people[0].name); 
             alert("此值应该是44,实际是" + json3.authors[0].age); 
             alert(json3.authors[1].address);
 
 //修改数据 
             json2.people[0].name = "周杰伦"; 
             alert("修改数据,修改前为张三,修改后为" + json2.people[0].name);
 
 //转换会字符串 
             alert(json2); 
             alert("toLocaleString()=" + json2.toLocaleString()); 
             alert("toString()=" + json2.toString()); 
             alert("toJSON=" + json2.toJSON); 
             alert("toJSONString()=" + json2.toJSONString());  //引用了json.js中的函数 
         } 
 </script> 
 </head> 
 <body onload="json()"> 
 <ol> 
     <li>JSON---表示</li> 
     <li>JSON---访问数据</li> 
     <li>JSON---修改JSON数据</li> 
     <li>JSON---转换回字符串</li> 
     <li>JSON---JSON在线校验工具 BeJson</li> 
 </ol> 
 </body> 
 </html>
result
访问时直接打开打开JSON.html文件,效果如下:

JSON学习

说明:以上学习的过程主要是参考了百度百科

下面对自己学习JSON的过程做几点简单的总结:

1.JSON是一个对象,可以直接赋值给js变量,不能再外面加双引号

2.JSON和XML所处的战场不同,在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml