from:http://blog.csdn.net/smartsmile2012/article/details/17316351
版权声明:本文为博主原创文章,未经博主允许不得转载。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
 - <html xmlns="http://www.w3.org/1999/xhtml">  
 - <head>  
 -     <title>Ajax和getJSON获取后台普通Json数据和层级Json数据解析</title>  
 -     <script src="JS/<a href="http://lib.csdn.net/base/22" class="replace_word" title="jQuery知识库" target="_blank" style="color:#df3434; font-weight:bold;">jquery</a>-1.8.0.min.js" type="text/<a href="http://lib.csdn.net/base/18" class="replace_word" title="JavaScript知识库" target="_blank" style="color:#df3434; font-weight:bold;">javascript</a>"></script>  
 -     <script type="text/javascript">  
 -         $(function () {  
 -             //方式一 Ajax方式获取Json数据  
 -             $.ajax({  
 -                 url: 'jsondata.ashx?type=1',  
 -                 type: 'GET',  
 -                 dataType: 'json',  
 -                 timeout: 1000,  
 -                 cache: false,  
 -                 beforeSend: LoadFunction, //加载执行方法    
 -                 error: erryFunction,  //错误执行方法    
 -                 success: succFunction //成功执行方法    
 -             })  
 -             function LoadFunction() {  
 -                 $("#list").html('加载中...');  
 -             }  
 -             function erryFunction() {  
 -                 alert("error");  
 -             }  
 -             function succFunction(tt) {                  
 -                 var json = eval(tt); //数组     
 -                 var tt = "";  
 -                 $.each(json, function (index) {  
 -                     //循环获取数据    
 -                     var Id = json[index].id;  
 -                     var Name = json[index].name;  
 -                     var Age = json[index].age;  
 -                     var Score = json[index].score;  
 -                     tt += Id + "___" + Name + "___" + Age + "___" + Score + "<br>";  
 -                 });  
 -                 $("#list").html('');  
 -                 $("#list").html(tt);  
 -             }  
 -   
 -             //方式二 Json方式获取数据  
 -             $.getJSON(  
 -                 "jsondata.ashx?type=1",  
 -                 function (data) {  
 -                     //循环获取数据    
 -                     var tt = "";  
 -                     $.each(data, function (k, v) {  
 -                         $.each(v, function (kk, vv) {  
 -                             tt += kk + ":" + vv + "___";  
 -                         });  
 -                         tt += "<br/>";  
 -                     });  
 -                     $("#list2").html(tt);  
 -                 }  
 -             );  
 -   
 -             //方式三 Ajax方式获取Json层级数据  
 -             $.ajax({  
 -                 url: 'jsondata.ashx?type=3',  
 -                 type: 'GET',  
 -                 dataType: 'json',  
 -                 timeout: 1000,  
 -                 cache: false,  
 -                 beforeSend: LoadFunction1, //加载执行方法    
 -                 error: erryFunction1,  //错误执行方法    
 -                 success: succFunction1 //成功执行方法    
 -             })  
 -             function LoadFunction1() {  
 -                 $("#list3").html('加载中...');  
 -             }  
 -             function erryFunction1() {  
 -                 alert("error");  
 -             }  
 -             function succFunction1(tt) {  
 -                 var json = eval(tt); //数组     
 -                 var tt = "";  
 -                 $.each(json, function (index) {  
 -                     //循环获取数据    
 -                     var Id = json[index].id;  
 -                     var Name = json[index].name;  
 -                     var Age = json[index].age;  
 -                     var Score = json[index].score;  
 -                     tt += Id + "___" + Name + "___" + Age + "___";  
 -                     $.each(Score, function (k, v) {  
 -                         tt += k + ":" + v + "___";  
 -                     })  
 -                     tt += "<br/>";  
 -                 });  
 -                 $("#list3").html('');  
 -                 $("#list3").html(tt);  
 -             }  
 -   
 -             //方式四 Json方式获取层级数据  
 -             $.getJSON(  
 -                 "jsondata.ashx?type=3",  
 -                 function (json) {  
 -                     //循环获取数据    
 -                     var tt = "";  
 -                     $.each(json, function (index) {  
 -                         //循环获取数据    
 -                         var Id = json[index].id;  
 -                         var Name = json[index].name;  
 -                         var Age = json[index].age;  
 -                         var Score = json[index].score;  
 -                         tt += Id + "___" + Name + "___" + Age + "___";  
 -                         $.each(Score, function (k, v) {  
 -                             tt += k + ":" + v + "___";  
 -                         })  
 -                         tt += "<br/>";  
 -                     });  
 -                     $("#list4").html('');  
 -                     $("#list4").html(tt);  
 -                 }  
 -             );  
 -         });  
 -     </script>  
 - </head>  
 - <body>  
 -     <p>方式一</p>  
 -     <ul id="list">  
 -     </ul>  
 -     ____________________________________  
 -     <p>方式二</p>  
 -     <ul id="list2">  
 -     </ul>  
 -     ____________________________________  
 -     <p>方式三</p>  
 -     <ul id="list3">  
 -     </ul>  
 -     ____________________________________  
 -     <p>方式四</p>  
 -     <ul id="list4">  
 -     </ul>  
 - </body>  
 - </html>  
 
- <%@ WebHandler Language="C#" Class="jsondata" %>  
 -   
 - using System;  
 - using System.Web;  
 - using System.Web.Script.Serialization;  
 - using System.IO;  
 - using System.Text;  
 - using System.Collections;  
 - using System.Collections.Generic;  
 - using System.Data;  
 - using Newtonsoft.Json;  
 -   
 - public class jsondata : IHttpHandler {  
 -   
 -     public void ProcessRequest(HttpContext context)  
 -     {  
 -         context.Response.ContentType = "text/plain";  
 -         context.Response.Cache.SetNoStore();  
 -         string type = context.Request["type"];  
 -         if (type=="1") //普通数据  
 -         {  
 -             List<Dictionary<String, String>> aa = new List<Dictionary<string, string>>();  
 -             for (int i = 0; i < 6; i++)  
 -             {  
 -                 Dictionary<String, String> aaa = new Dictionary<string, string>();  
 -                 aaa.Add("id", "no" + i);  
 -                 aaa.Add("name", "张三" + i);  
 -                 aaa.Add("age", "21");  
 -                 aaa.Add("score", "1001");  
 -                 aa.Add(aaa);  
 -             }  
 -             string json = JsonConvert.SerializeObject(aa, Formatting.Indented);  
 -             context.Response.Write(json);  
 -         }  
 -         if (type == "3") //层级数据  
 -         {  
 -             List<Student> list = new List<Student>();  
 -             for (int i = 0; i < 6; i++)  
 -             {  
 -                 Student a = new Student();  
 -                 a.id = "no" + i;  
 -                 a.name = "张三" + i;  
 -                 a.age = "21";  
 -                   
 -                 Dictionary<string, string> dic = new Dictionary<string, string>();  
 -                 dic.Add("语文","80");  
 -                 dic.Add("数学", "81");  
 -                 dic.Add("英语", "83");  
 -                 dic.Add("生物", "89");  
 -                 dic.Add("化学", "90");  
 -                 dic.Add("物理", "95");  
 -                 a.score = dic;  
 -                 list.Add(a);  
 -             }  
 -             string json = JsonConvert.SerializeObject(list, Formatting.Indented);  
 -             context.Response.Write(json);  
 -         }          
 -     }  
 -   
 -     public struct Student  
 -     {  
 -         public string id;  
 -         public string name;  
 -         public string age;  
 -         public Dictionary<string,string> score;  
 -     }  
 -   
 -     public bool IsReusable  
 -     {  
 -         get  
 -         {  
 -             return false;  
 -         }  
 -     }  
 - }  
 
