zoukankan      html  css  js  c++  java
  • 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+")");

     

  • 相关阅读:
    芯片手冊写错了,非常悲剧
    编程之美读书笔记1.8
    贪心算法
    codeforces Looksery Cup 2015 D. Haar Features
    NS3网络仿真(5): 数据包分析
    hdu1116 Play on Words--并查集
    程序猿生存定律-六个程序猿的故事(2)
    保存Activity的状态
    9月份入读哈工大计算机研究生了
    leetcode第一刷_Same Tree
  • 原文地址:https://www.cnblogs.com/paper/p/1533200.html
Copyright © 2011-2022 走看看