Ajax中数据传递的一种模式:JSON

 

什么是 JSON

      JSON概念很简单,JSON 是一种轻量级的数据格式,他基于 javascript 语法的子集,即数组和对象表示。由于使用的是 javascript 语法,因此JSON 定义可以包含在javascript 文件中,对其的访问无需通过基于 XML 的语言来额外解析。不过在使用 JSON 之前,很重要的一点是理解 javascript 中数组及对象字面量的特殊语法。

1.1 数组字面量

         数组字面量,是用一对方括号括起一组用逗号隔开的 javascript 值,例如:

        var as=["hi", 10, true , null];

1.2 对象字面量

        对象字面量,是通过两个花括号来定义的。在花括号内可以放置任意数量的“名称-值”对,定义格 式字符串值”。除了最后一行外,每个“名称-值”对后必须有一个逗号(这与Perl 中的联合数组的定义有些类似)。例如:

        var oCar = {

               "color": "green",       

              "doors" : 3,

               "paidFor" : false

        };

1.3 混合字面量

      我们可以混用对象和数组字面量,来创建一个对象数组,或一个包含数组的对象。(具体的我也不太清楚)

可能有人对json格式的文本不熟悉,我下面给大家写段json数据:

{

"planet":

{

"name":"earth",

"type":"small",

"info":["Earth is a small planet,third from the sun","two-thirds","climated and landcapes"]

}

}

下面是一个简单的例子:

function showInfo(event)

{

var planet=this.id;

var scriptUrl=planet+".json";

new net.ContentLoader(scriptUrl,parseJSON);

}

function parseJSON()

{

var name="";

var descrip="";

var jsonTxt=net.req.responseText;

var jsonObj=eval("("+jsonTxt+")");

name=jsonObj.planet.name

var ptype=jsonObj.planet.type;

if(ptype)

{

descrip+="<h2>'+ptype+"</h2>";

}

var infos=jsonObj.planet.info;

descrip+="<ul>";

for(var i in infos)

{

descrip+="<li>"+infos[i]+"</li>\n";

}

descrip+="</ul>";

top.showPopup(name,descrip);

}

我们再一次使用ContentLoader来获取数据,并且分配一个回调函数parseJSON()。整个的响应文本是一条合法的JavaScript语句,因此我们可以用过简单的调用eval()函数来创建一个对象图:

 var jsonObj=eval("("+jsonTxt+")");

 

原文地址:https://www.cnblogs.com/paper/p/1533200.html