.net中解析json 之 DataContractJsonSerializer类
来源:互联网 发布:淘宝客怎么招代理 编辑:程序博客网 时间:2024/05/07 00:17
json 是轻量级的文本传输格式,一般用于前台和后台的数据交换
DataContractJsonSerializer是fm3.5中专门对json序列化和反序列化的类,以下是DataContractJsonSerializer的简单应用
假设客户端有个json对象,通过ajax传到后台,后台解析
代码如下:
var people = [{ "UserName": "t1", "PassWord": "111111", "Sex": "男" },{ "UserName": "t2", "PassWord": "222222", "Sex": "女" }]; var url = "Default.aspx?people=" + escape(people.toJSONString()); request.open("POST", url, true); request.onreadystatechange = updatePage; request.send(null);
toJSONString函数正常运行得引用json.js
<script src="json.js" type="text/javascript"></script>
后台代码:
新建测试类 testobj (testobj中的属性和客户端传递过来的一致)
[DataContract]//序列化public class TestObj{ [DataMember] public string UserName { get; set; } [DataMember] public string PassWord { get; set; } [DataMember] public string Sex { get; set; }public TestObj(string u,string p,string s){ UserName = u; PassWord = p; Sex = s;}}
新建序列化和反序列化方法
//json 序列化 public static string ToJsJson(object item) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType()); using(MemoryStream ms=new MemoryStream()) { serializer.WriteObject(ms, item); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray())); return sb.ToString(); } } //反序列化 public static T FromJsonTo<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } }
调用:
反序列化json(解析)注:people即客户端传递过来
//获取json字符串 string jsonStr = Request["people"]; List<TestObj> obj = Json.FromJsonTo<List<TestObj>>(jsonStr); foreach (TestObj item in obj) { Response.Write(string.Format("UserName:{0},Password:{1},Sex:{2}/r/n", item.UserName, item.PassWord, item.Sex)); } Response.End();
序列化成json字符串
List<TestObj> Users = new List<TestObj>(); Users.Add(new TestObj("t1", "1", "男")); Users.Add(new TestObj("t2", "2", "女")); string json = Json.ToJsJson(Users); Response.Write(json); Response.End();
前台获取后台返回的json字符串:
function updatePage() { if (request.readyState == 4) { if (request.status == 200) { var response = request.responseText; //转化成对象 //方法1 response = response.parseJSON(); //方法2 // response = eval("(" + response + ")"); //对象访问方式 document.getElementById("d1").innerHTML = response[1].Sex; //直接输出 // document.getElementById("d1").innerHTML = response; } } }
0 0
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 json.net
- C# 中使用JSON - DataContractJsonSerializer
- C# 中使用JSON - DataContractJsonSerializer
- C# 中使用JSON - DataContractJsonSerializer
- C# 中使用JSON -DataContractJsonSerializer
- C# 中使用JSON - DataContractJsonSerializer
- DataContractJsonSerializer .Net Framework3.5处理Json
- JSON - DataContractJsonSerializer
- DataContractJsonSerializer 类 操作json类型数据
- DataContractJsonSerializer 类 操作json类型数据
- DataContractJsonSerializer 类 操作json类型数据
- .Net中解析Json
- 关于C#使用DataContractJsonSerializer来进行JSON解析
- 使用.net 3.5的DataContractJsonSerializer进行JSON Serialization
- MongoDB之数据存储结构
- String的compareTo()方法返回值
- SDUT1480
- DOJO Tree
- Android Service 自动启动
- .net中解析json 之 DataContractJsonSerializer类
- 推荐几款实用的Web项目管理工具
- Mono For Android 第一个App应用程序
- 深度解析JSP工作原理
- Eclipse中以html格式高亮显示velocity文件
- leetcode:ZigZag Conversion
- C++(虚)继承类的内存占用大小
- How to get rid of - package "1 not fully installed or removed"
- AUPE学习第十二章------线程控制