JSON基础 Jquery调用json
2011-09-21 15:27:27| 分类: Jquery|字号 订阅
前言:本文的目的是弄明白什么是JSON,JSON的数据格式是什么样的。同时弄明白使用Jquery调用JSON的简单方法。
了解什么是json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
例如:{“name”:”jhon”,”sex”:”man”}
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
例如:[“jhon”,”man”,26,true]
值(value)可以是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
更多详细内容请登录: http://www.json.org/json-zh.html。
1、直接在js中加载JSON,然后解析、输入json中数据。
function test() {
var jsontext = '{"man":{"weight":"75kg", "age":"24"},"ar":["1", "2", "3", "4"]}';
//解析json
var aman = eval("("+jsontext+")");
//取出json中的信息
alert(aman.man.weight);
}
2、
Window.location.href是输出JSON数据的页面连接,
输出数据是: {"name":"Jhon","sex":"man"}
$.getJSON(window.location.href, { id: "abc" }, function (msg) { alert(msg.name); });
注释:返回值:XMLHttpRequestjQuery.getJSON(url, [data], [callback])
参数说明:
url:发送请求地址。 例子中的:window.location.href,也可以是其他的可以返回JSON数据的URL地址。
data (可选):待发送 Key/value 参数。URL中需要的参数列表 default.aspx?id=abc
callback (可选):载入成功时回调函数。执行返回的函数
参考连接: http://api.jquery.com/jQuery.getJSON/
3、Ajax返回JSON数据
$.ajax({
url: window.location.href,
type: "GET",
data: "id=abc",
dataType: "json",
success: function (msg) {
//遍历Json数据
$.each(msg, function (key, val) {
alert(key+":"+val);
});
},
error: function () {
alert("error");
}
});