不过回去的字符串可能相比较复杂,Json将复杂对象连串化为一个字符串

情势一: 直接按照json的格式构建对象就能够一贯解析了

2.JAVAscript设置

如此有着的归来数据就改为一个目的。

    <script type="text/javascript">
        $(function() {
            $.post("Json1.ashx", function(data, state) {
                if (state == "success") {
                    var person = $.parseJSON(data);    //利用parseJSON进行转换
                    alert(person.Name);
                    alert(person.Age);
                }
            });
        });
    </script>

 第一种办法本身用的是JavaScriptSerializer 。

AJAX传递复杂数据如若协调举办格式定义的话会经历组装、解析的进程,由此AJAX中有一个实际
的多少传输标准JSon。 
Json将复杂对象系列化为一个字符串,在浏览器端再将字符串反连串化为JavaScript可以读取的对象。
看一下Json的格式。Json被几乎拥有语言辅助。 
C#中将.Net对象系列化为Json字符串的法子: 
JavaScriptSerializer().Serialize(p),JavaScriptSerializer在System.Web.Extensions.dll中,
是.Net3.x 中新增的类,倘使在 .Net2.0中则需要用第三方的零部件。 
JQuery AJAX得到的data是Json格式数据,用
$.parseJSON(data)方法将JSon格式数据解析为JavaScript对象 
可以在post函数
后一个函数传递”json”则data就是反系列化未来的目的,免去了parseJSON

 1             //第一次解析
 2             Dictionary<string, object> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
 3             //获取具体数据部分
 4             object obj = dic["resultData"];
 5             //将数据部分再次转换为json字符串
 6             string jsondata =  Newtonsoft.Json.JsonConvert.SerializeObject(obj);
 7             //获取数据中的  不同类型的数据   
 8             Dictionary<string, object> dicc = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(jsondata);
 9 
10             //chalssinfo 
11             object objclass = dicc["classinfo"];
12             string jsonclass = Newtonsoft.Json.JsonConvert.SerializeObject(objclass);
13             DataTable tclass = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonclass);
14             //otherinfo 
15             object objother = dicc["otherinfo"];
16             string jsonother = Newtonsoft.Json.JsonConvert.SerializeObject(objother);
17             DataTable tother = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonother);
18 
19 
20            // tclass 和  tother 里面分别存放 classinfo和otherinfo  然后可以操作datatale 或者转成list也行
21  

案例:用Json将类重返给客户端,使用JQurey
1.甩卖页设置 Json1.ashx

 

public void ProcessRequest(HttpContext context)
    {
       context.Response.ContentType = "text/plain";
       JavaScriptSerializer jss = new JavaScriptSerializer();    //创建 JavaScriptSerializer
       string  json = jss.Serialize(new person(){Name="xgao",Age=18 });
       context.Response.Write(json);
    }

    public class person
    {
       public string Name { get; set; }
       public int Age { get; set; }
    }

只是回去的字符串可能相比较复杂,可能不止一连串型的数额。

 

1  
2                     if (result.resultData.classinfo!= null && result.resultData.classinfo.Count > 0)
3                     {
4                       List<classinfo>  classinfos= result.resultData.classinfo;
5                     }

 第两种方法用的是 Json.Net
不过急需在NuGET里面添加该服务(推荐)或者上网下载dll文件引入。

 假使还有其他的点子请告诉 谢谢!!

 方法二
:先解析成字典,获取到数量以后重新转移成json然后解析,思路是其一思路,假如遇上其他更加复杂的json也可以遵照这么些思路去分析

  JavaScriptSerializer jss = new JavaScriptSerializer();
 result_Msg result = jss.Deserialize<result_Msg>(json);

 

哪些分析呢剔除其他音信只获得具体数额吧?

{
    "resultCode": "0",
    "resultMsg": "查询成功!",
    "resultData": {
        "classinfo": [
            {
                "classNo": "101",
                "className": "小A"

            },
            {
                "classNo": "101",
                "className": "小B"
            },

        ],
        "otherinfo": [
            {
                "otherNo": "1111",
                "otherType": "A"            
            },
            {

                "otherNo": "222",
                "otherType": "b",
            }
         ]
    }
}
 1     [Serializable]
 2     [DataContract]
 3     public class result_Msg
 4     {
 5         /// <summary>
 6         /// code
 7         /// </summary>
 8         [DataMember(IsRequired = false)]
 9         public string resultCode { get; set; }
10         /// <summary>
11         /// msg
12         /// </summary>
13         [DataMember(IsRequired = false)]
14         public string resultMsg { get; set; }
15         /// <summary>
16         /// 数据集合
17         /// </summary>
18         [DataMember(IsRequired = false)]
19         public resultData resultData { get; set; }
20     }

1  [Serializable]
2     public class resultData
3     {
4         public List<classinfo> classinfo{ get; set; }
5         public List<otherinfo> otherinfo{ get; set; }
6       
7     }

ps:使用JavaScriptSerializer 或者 Json.Net 都可以

例如:

在接口开发的长河中不时通过接口获取数据重回是json格式字符串。