大概半年前,在做“善良公社”项目时,就听组里人在谈论JSON,但自己一直没研究及使用过,前几天看“王兴魁——AJAX”视频时,才算是正式学习了一下,也跟随着完成了个小demo,只不过王兴魁里是以Java为后台语言讲解的。
JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
所以解析JSON对象的话JS非常简单!!示例:
function showJSON() {
var user =
{
"username":"lianhai",
"age":26,
"info": { "tel": "123456", "cellphone": "98765"},
"address":
[
{"city":"langfang","postcode":"222333"},
{"city":"cangzhou","postcode":"555666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[0].postcode);
}
二、使用方法
那我想将Javascript里面的一些对象比如数组、函数、类转成JSON对象怎么办呢?
可以使用第三方的一个JS包,JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。
那如果我想将一个字符串的东西转成JS里面的JSON对象又怎么办呢?答复:eval()
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = eval('(' + str + ')');
alert(obj.toJSONString());
}
——这个很有用的。AJAX里面接收到的数据一般是字符串然后我可以将其转换成json对象。这样就可以直接使用了!
还有另外一种办法:使用parseJSON()方法!效果一样,一段示例:
java 代码
response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");
再在页面中写一个ajax的请求js 代码
function sendRequest() {
var url = "/MyWebApp/JSONTest1";
var mailAjax = new Ajax.Request(
url,
{
method: 'get',
onComplete: jsonResponse
}
);
}
function jsonResponse(originalRequest) {
alert(originalRequest.responseText);
var myobj = originalRequest.responseText.parseJSON(); //转成JSON对象之后再使用
alert(myobj.name);
}
这就是对JSON的一个简单介绍。当然,提及“JSON”,就不得不说与“XML”的区别,下篇博客将展开介绍,敬请期待!