Json序列化

C# Json 序列化三种方法

第一种是使用Newtonsoft.Json库

using Newtonsoft.Json
//json 序列化
 string json = JsonConvert.SerializeObject(users);
//Json 反序列化
List<User> users = JsonConvert.DeserializeObject<List<User>>(json)

第二种是使用System.Text.Json

using System.Text.Json
//这个在某些场景可以用到
//当面对某些json中一个属性值一会为数组类型,一会为字符类型就能用到这个
//下面的图
可以判断属性值类型,Value.ValueKind == JsonValueKind.Array,当然还有其他类型

在这里插入图片描述

这是我的结构类,在做这个判断的时候,这个属性为JsonElement

在这里插入图片描述

//反序列化
var aboutData = System.Text.Json.JsonSerializer.Deserialize<AboutData>(json);
//序列化
string json = System.Text.Json.JsonSerializer.Serialize(user);

第三种是使用IO流和System.Runtime.Serialization.Json

我结合他们写了两种方法

/// <summary>
/// Json序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="users"></param>
/// <returns></returns>
public static string JsonConvertSer<T>(List<T> users)
{
    //注意这个是DataContractJsonSerializer
    DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(List<T>));
    //读取
    MemoryStream msobj = new MemoryStream();
    js.WriteObject(msobj, users);
    msobj.Position = 0;
    StreamReader sr = new StreamReader(msobj, Encoding.UTF8);
    string json = sr.ReadToEnd();
    sr.Close();
    msobj.Close();
    msobj.Close();
    return json;
}
/// <summary>
/// Json反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <returns></returns>
public static List<T> JsonConvertDes<T>(string json)
{
    using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
    {
        var deserializer = new DataContractJsonSerializer(typeof(List<T>));
        List<T> model = (List<T>)deserializer.ReadObject(ms);
        return model;
    }
}

``
如果有任何违规,侵犯到别人权益。立刻删除
个人笔记
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值