<<  AJAX请求并发问题 | 首 页 | 不理想的设计  >>
2007-05-27

     我今天在豆瓣上看到JSON讨论群中有人提问$.getJSON的使用方法,他不明白回调函数中json参数的用法。我对此做了简单的回答。
      其实,这个json对象其实我们都非常熟悉。
  不说那些难以理解的概念了,先简单说一下它的结构。
   -以左大括号({)开始
   -一个或多个属性,属性名和值之间用冒号隔开,属性之间使用逗号间隔
   -以右大括号(})结束
  对象中每个属性的值可以为任何JavaScript中允许的类型的数据,例如字符串、数组、数字、对象等。
   举一个简单的例子:
   {
   companyname:"SUN CO.",
   addresses:["address1","address2"],
   country:"USA",
   }
   很明显,其实JSON结构也就是一个哈希表结构。
   OK,了解了JSON的结构,我们就可以回来看一下JQuery中的$.getJSON()方法了。该方法有三个参数,$.getJSON(String url, Hash params, Function callback)。其中,url是获取JSON结构数据的请求地址,即访问该地址会得到一段JSON结构的文本(这里被JQuery封装了,这一段文本是通过请求对象的responseText属性得到的)。params是向url地址的服务发送的参数,服务器可以根据这些参数做出响应。参数的结构跟JSON的结构类似,都是形似“{key1:value1,key2:value2}”的结构。callback为回调函数,即function(json){//code...},在这个函数中做客户端处理。在callback函数中,参数json就是通过向url请求得来的JSON结构文本构造出来的对象。json参数的使用很简单,它是一个哈希表对象,可以通过json.key的方式来使用其中定义的属性。例如,如果我们传入的是前面所述例子的JSON结构,我们可以通过json.addresses[0]来获取addresses的第一个值。
   JSON不神秘,说白了其实就是个哈希表结构,在JavaScript中可以直接使用,非常方便。






评论

  • 而且可以跨域

    思维[融客] (http://www.rongk.com.cn) 发表于 2008-06-18 16:56:59  [回复]
  • 测试失败

    else () 发表于 2008-04-23 16:38:22  [回复]
  • 明明就是JavaScript的语法,怎么就成了Json了呢。{}是定义一个对象,[]是一个数组!

    Robin 回复 HooPower 说:
    兄弟,你说的没错。JSON相比XML的最大便捷性就在于他可以直接被JavaScript识别,因为本质上他就是JavaScript脚本。可以通过原生的eval方法解析为Javascript哈希值(直接体)。
    (2007-08-16 09:08:11)

    HooPower (http://www.hoopower.com) 发表于 2007-07-25 00:09:50  [回复]

发表评论

 姓名:
 E-mail:
 地址: