在 Android 上使用 XML 和 JSON,第 1 部分: 在 Android 应用程序上研究 JSON 和 XML 益处
2010-10-22 17:19:13 来源:WEB开发网假设应用程序想要请求 Mr. Mott.(这是我们虚构的)的联系记录,应用程序返回浏览器的数据元素不止一个。它是如何包装的呢?在 清单 1 示例中,您可以使用一个简单的请求/响应结构。这已经足够了;然而它要求您解析来自服务器的每个响应、以某种结构(DOM)存储数据,然后更新网页内容。
还有一种选择,您可以从服务器上返回一些 JavaScript,并用它来直接处理。以下是一个虚拟应用程序的样例响应,对 Mott 查询(http://<yourserver/app/searchcontact?Mott)的响应。这个响应是一个 JavaScript 对象字符串表示 — 即 JSON 字符串(为了适应本文页宽在这分成两行):
[{"firstname":"Troy","lastname":"Mott","age":"don't ask!"},{"firstname":"Apple seed",
"lastname":"Mott's","age":"99"}]
XML 以其冗长而著名,而 JSON 也因其难度而闻名。JSON 对象其构造是一个键 :值 对,对象元素之间用逗号隔开,每个对象被包含在一对大括号 {} 内。一组对象数组包含在一对方括号中。这是将数据行从一个数据库发送到一个对象数组的一种常见方法。其中每个数组元素对应数据库中的一行,每个对象属性代表数据的一列。
清单 3 显示了一个在 HTML 页面中使用这类对象的示例。为简单起见,不包括服务器通信;相反,JSON 数据作为一个字符串变量 serverresponse 提供。
清单 3. 在 HTML 页面中使用一个 JSON 对象
<html>
<head>
<script language="JavaScript">
var serverresponse = "[{\"firstname\":\"Troy\",\"lastname\":\"Mott\",\"age\":\"don't
ask!\"},{\"firstname\":\"Apple seed\",\"lastname\":\"Mott's\",\"age\":\"99\"}]";
function updatepage()
{
var contacts = eval(serverresponse );
var i;
var s = "Search Results:<br />";
for (i=0;i<contacts.length;i++)
{
s = s + contacts[i].firstname + " " + contacts[i].lastname + "'s age is ... "
+ contacts[i].age + "<br />";
}
document.getElementById("target").innerHTML = s;
}
</script>
</head>
<body>
<button >Search for Mott</button><br />
<span id="target"> </span>
</body>
</html>
赞助商链接