c#.net 4 json序列化与反序列化通用类
2012-04-03 14:30
225 查看
整理的一个通用类
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Runtime.Serialization.Json; namespace Wyw.Utilities { /// <summary> /// JsonUtil /// JsonUtil功能:json字符串和实体类转化 /// jsonObject实体类可以用这样的方法生成:JsonCSharpClassGenerator.exe工具;推荐:http://json2csharp.com/ /// 修改记录 /// /// 版本:1.0 /// <author> /// <name>Wyw308</name> /// <date>2012-03-26 13:26:09</date> /// </author> /// </summary> public class JsonUtil { /// <summary> /// 将object转换为json字符串,obj为方法实体类 /// </summary> /// <param name="obj">方法实体类</param> /// <returns></returns> public static string ObjectToJson(object obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray())); return sb.ToString(); } } /// <summary> /// 将json字符串转化为方法实体类 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonString"></param> /// <returns></returns> public static T JsonToObject<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T jsonObject = (T)ser.ReadObject(ms); ms.Close(); return jsonObject; } /// <summary> /// 规范的json建对是这样:"名称":"值",本方法将json字符串中的名称添加双引号 /// </summary> /// <param name="jsonString">json字符串</param> /// <returns></returns> public static string JsonFormat(string jsonString) { //(?<=:)[\w]+(?=,) 以:开头,以,结尾中间的字符 return Regex.Replace(jsonString, "\\b[\\w]+(?=:\"[^\"]*\")", "\"$0\"");//连续字母或数字以:结尾且不包含: } /// <summary> /// 从外围截取边界内内容,StripTextTo(jonstr,"[", "]"); /// </summary> /// <param name="jsonString"></param> /// <param name="sChr"></param> /// <param name="eChr"></param> /// <returns></returns> public string StripTextTo(string jsonString,char sChr, char eChr) { string stripTextTo = jsonString; int num = stripTextTo.IndexOf(sChr); int num2 = stripTextTo.LastIndexOf(eChr); int num3 = num2 - num + 1; if (num3 > 1) { stripTextTo = stripTextTo.Substring(num, num3); } return stripTextTo; } } }
相关文章推荐
- ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- [asp.net]C#实现json的序列化和反序列化
- [asp.net]C#实现json的序列化和反序列化
- json [asp.net]C#实现json的序列化和反序列化
- C# 利用 Json.NET/LitJSON序列化json(第三方DLL)
- c#.net将对象序列化,反序列化json
- ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- C#.NET序列化XML、JSON、二进制微软自带DLL与newtonsoft(json.net)
- C# .NET利用Newtonsoft.Json来序列化和反序列化对象
- C#序列化及反序列化Json对象通用类JsonHelper
- C#通用类:json转换为对象,对象序列化XML
- [asp.net]C#实现json的序列化和反序列化
- [asp.net]C#实现json的序列化和反序列化
- [asp.net]C#实现json的序列化和反序列化
- C#实体对象序列化成Json,并让字段的首字母小写
- asp.net中序列化和反序列化json的两种常用方式
- Json的序列化与反序列化的问题c#
- ASP.NET中JSON的序列化和反序列化