将对象序列化成json



 public static class JsonFormatter
    {
        /// <summary>
        /// 将对象序列化json
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Serialize<T>(T value)
        {
            if (value == null) return null;
            using (var ms = new MemoryStream())
            {   
                var ser = new DataContractJsonSerializer(typeof(T));
                ser.WriteObject(ms, value);
                ms.Position = 0;
                using(var sr = new StreamReader(ms, System.Text.Encoding.UTF8))
                {
                    return sr.ReadToEnd();
                }
            }
        }
    }

转载于:https://www.cnblogs.com/BungeeJumping/archive/2012/08/29/2661997.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 使用Newtonsoft.Json库进行序列化和反序列化 代码: //序列化 string json = JsonConvert.SerializeObject(obj); //反序列化 T obj = JsonConvert.DeserializeObject<T>(json); 案例: //定义一个Person类 public class Person { public string Name { get; set; } public int Age { get; set; } } //序列化一个Person对象 Person person = new Person() { Name = "Tom", Age = 25 }; string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); //反序列化一个Person对象 string jsonStr = "{\"Name\":\"Tom\",\"Age\":25}"; Person person = JsonConvert.DeserializeObject<Person>(jsonStr); Console.WriteLine(person.Name + " " + person.Age); 输出结果: {"Name":"Tom","Age":25} Tom 25 2. 使用System.Web.Script.Serialization库进行序列化和反序列化 代码: //序列化 JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(obj); //反序列化 JavaScriptSerializer serializer = new JavaScriptSerializer(); T obj = serializer.Deserialize<T>(json); 案例: //定义一个Person类 public class Person { public string Name { get; set; } public int Age { get; set; } } //序列化一个Person对象 Person person = new Person() { Name = "Tom", Age = 25 }; JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(person); Console.WriteLine(json); //反序列化一个Person对象 string jsonStr = "{\"Name\":\"Tom\",\"Age\":25}"; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize<Person>(jsonStr); Console.WriteLine(person.Name + " " + person.Age); 输出结果: {"Name":"Tom","Age":25} Tom 25 3. 使用DataContractJsonSerializer库进行序列化和反序列化 代码: //序列化 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); byte[] jsonBytes = ms.ToArray(); string json = Encoding.UTF8.GetString(jsonBytes, 0, jsonBytes.Length); } //反序列化 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { T obj = (T)serializer.ReadObject(ms); } 案例: //定义一个Person类 [DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public int Age { get; set; } } //序列化一个Person对象 Person person = new Person() { Name = "Tom", Age = 25 }; DataContractJsonSerializer serializer = new DataContractJsonSerializer(person.GetType()); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, person); byte[] jsonBytes = ms.ToArray(); string json = Encoding.UTF8.GetString(jsonBytes, 0, jsonBytes.Length); Console.WriteLine(json); } //反序列化一个Person对象 string jsonStr = "{\"Name\":\"Tom\",\"Age\":25}"; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person)); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr))) { Person person = (Person)serializer.ReadObject(ms); Console.WriteLine(person.Name + " " + person.Age); } 输出结果: {"Age":25,"Name":"Tom"} Tom 25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值