我今天在豆瓣上看到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中可以直接使用,非常方便。
发表评论
| 姓名: | |
| E-mail: | |
| 地址: | |


评论
而且可以跨域
测试失败
明明就是JavaScript的语法,怎么就成了Json了呢。{}是定义一个对象,[]是一个数组!
兄弟,你说的没错。JSON相比XML的最大便捷性就在于他可以直接被JavaScript识别,因为本质上他就是JavaScript脚本。可以通过原生的eval方法解析为Javascript哈希值(直接体)。
(2007-08-16 09:08:11)