夸克之书

  • 首页
  • 科普
  • 笔记
  • C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. C#
  3. 正文

C# Json序列化与反序列化

2018-11-04 2181点热度 0人点赞 0条评论

一直收藏的Json类,简单,好用。需要用到库Newtonsoft.Json,直接在Nuget中获取就好。

Json反序列化:

/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string SerializeObject(object o)
{
    string json = JsonConvert.SerializeObject(o);
    return json;
}

Json序列化:

/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public static T DeserializeJsonToObject<T>(string json) where T : class
{
    JsonSerializer serializer = new JsonSerializer();
    StringReader sr = new StringReader(json);
    object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
    T t = o as T;
    return t;
}

/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public static List<T> DeserializeJsonToList<T>(string json) where T : class
{
    JsonSerializer serializer = new JsonSerializer();
    StringReader sr = new StringReader(json);
    object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
    List<T> list = o as List<T>;
    return list;
}

/// <summary>
/// 反序列化JSON到给定的匿名对象.
/// </summary>
/// <typeparam name="T">匿名对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="anonymousTypeObject">匿名对象</param>
/// <returns>匿名对象</returns>
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
{
    T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
    return t;
}
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020-12-13

afirefish

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
放松一下
https://www.quarkbook.com/wp-content/uploads/2021/05/凤凰传奇-海底(Live).flac
分类
  • C#
  • Linux
  • 树莓派
  • 物联网
  • 科普
  • 笔记
  • 算法
  • 默认
最新 热点 随机
最新 热点 随机
Windows移除多余输入法'Unknown Locale (qaa-Latn)' 【算法】具有层级关系的城市,例如"中国 广州","中国 浙江 杭州" 一个 List 最后应该是转成树状图输出 树莓派安装Golang环境 树莓派 Zero USB/以太网方式连接配置教程 树莓派Zero 2 w超频 PVE使用山克UPS(ViewPower)
Windows移除多余输入法'Unknown Locale (qaa-Latn)'解决Visual Studio 2022中无法编译 .NET Framework 4.5/4.5.1项目(Visual Studio 2022安装.NET Framework 4.5)PVE使用山克UPS(ViewPower)树莓派Zero 2 w超频树莓派 Zero USB/以太网方式连接配置教程树莓派安装Golang环境
Vieu主题作者疑似跑路?这人品?!!! IIS 当前标识(***)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限。 几种常见的开源协议详解 树莓派等ARM开发板C#GPIO控制(.NET Core) 解决问题:The context cannot be used while the model is being created 在.NET 6中System.Drawing.Common引发的“The type initializer for 'Gdip' threw an exception.”异常
最近评论
wking 发布于 1 个月前(05月24日) 请问贵博客是怎么优化的,网页响应速度非常快。我博客同样的WordPress和kratos主题,但点一...
去月球 发布于 6 个月前(01月18日) 如果使用CSI的摄像头应该怎么修改命令呢
Me 发布于 6 个月前(12月31日) 好像还得写启动项 要不重启就还原了。
十三 发布于 6 个月前(12月23日) 大神,网盘链接失效了,重新分享一下吧,
一键快乐 发布于 12 个月前(07月09日) 老哥 我替换之后能进去了但是网络和声音上有两个×怎么办
书签
  • 打赏
  • 毒鸡汤
  • 米店
  • 金鱼直播间

COPYRIGHT © 2022 quarkbook.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15036129号-9

登录
注册|忘记密码?