學習 2010-12-23 01:55:59 閱讀145 評論0 字型大小:大中小 訂閱
JSON (JavaScript Object Notation)一種簡單的資料格式,比xml更輕巧。 JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON資料不需要任何特殊的API或工具包。
JSON的規則很簡單:對象是一個無序的"'名稱/值'對"集合。一個對象以"{"(左括弧)開始,"}"(右括弧)結束。每個"名稱"後跟一個":"(冒號);"'名稱/值' 對"之間使用","(逗號)分隔。具體細節參考http://www.json.org/json-zh.html
舉例:A: [{"name": "zhangsan"}]
B: [{"name": "zhangsan", "sex": "man"}]
C: [{"name": "zhangsan", "sex": "man"},{"name": "lili", "sex": "woman"}]
裡面的每一個中擴號裡面的都是一項.對於C這個JSON,我們可以通過 C[0].name 取出zhangsan這個欄位, C[1].sex取出lili及第二項所對應的sex "woman"
通過這種方式,我們能夠很容易的將資料庫的各個欄位的值一起傳到頁面去。在此我用mvc2 架構展示一下。所用資料庫如下:
在此我只簡單的示範用法,至於頁面效果等就不做精美設計。頁面很簡單,只是點擊button按鈕,來顯示出第二項的powername和powerCnName.
View 層如下:
<head runat="server">
<title>Test</title>
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
</head>
<body>
<div>
許可權:<input type="text" id="name" /><br />
中文名:<input type="text" id="cname" /><br />
<input type="button" id="show" value="顯示第二項" />
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#show").click(function getDate() {
$.ajax({
url: "GetPower",
type: "post",
datatype: "json",
success: getdataresult
});
});
function getdataresult(data) {
$("#name").val(data[1].name);
$("#cname").val(data[1].Chinesename);
}
});
</script>
</body>
Model層建了一個名叫Power類,專門負責讀資料
public class Power
{
CRMDataContext db = new CRMDataContext();
public List<CRM_Power> GetAllPowers()
{
return db.CRM_Power.ToList();
}
}
Controller層主要是為Ajax調用JSON寫一個action
public ActionResult Test()
{
return View();
}
public ActionResult GetPower()
{
Power p=new Power();
var powers = p.GetAllPowers();
ArrayList list = new ArrayList();
foreach (var s in powers)
{
Hashtable ha = new Hashtable();
ha.Add("name", s.PowerName);
ha.Add("Chinesename", s.PowerCnName);
list.Add(ha);
}
return this.Json(list);
}
頁面效果如下,如果用firebug調試,還可以發現頁面相應如下