JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,而且它是基於JavaScript 的。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript 等)。這些特性使JSON成為理想的數據交換語言
JSON有兩種結構:
①“名/值”對的集合(A collection of name/value pairs)。在不同的語言中,它被理解為對象,結構,關聯數組等
②值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組。
JSON數據有嚴格的格式,只有按照這個格式,才可以進行有效的解析
JSON表示名稱/值對:
{ "firstName": "Brett" }
多個名稱/值對串在一起:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }
從語法方面來看,這與名稱/值對相比並沒有很大的優勢,www.linuxidc.com但是在這種情況下 JSON
更容易使用,而且可讀性更好
當需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少復雜性:
{ “employees": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
] }
Juqery解析JSON數據
例子一:
①建立.ashx文件。
/// <summary>
/// $codebehindclassname$ 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class JsonHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string data = "[{name:\"Tom\",age:\"26\"},{name:\"Jim\",age:\"27\"}]";
context.Response.Write(data);
}
public bool IsReusable
{
get
{
return false;
}
}
}
②前台解析JSON數據
<head runat="server">
<title></title>
<script src="js/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$.getJSON(
"JsonHandler.ashx",
function(data) {
$.each(data, function(i) {
$("#cat-list").append("<li>name:" + data[i].name + " Age:" + data
[i].age+ "</li>")