首页 / JSON / C# 基础 - Json 之间的转换
C# 基础 - Json 之间的转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 基础 - Json 之间的转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1716字,纯文字阅读大概需要3分钟。
内容图文
![C# 基础 - Json 之间的转换](/upload/InfoBanner/zyjiaocheng/601/5c3356479c864e56b56f9f79a46cb07c.jpg)
这里举例两种方式。
1. Newtonsoft.Json.JsonConvert
需要引用外部的 Newtonsoft.Json.dll
/// <summary>
/// 将json字符串转换为对象(使用Json.net)
/// </summary>
/// <param name="response"></param>
/// <param name="dateformatstring">时间格式</param>
/// <returns></returns>
public T JsonNetConvertJson<T>(string response)
{
try
{
//return JsonConvert.DeserializeObject<T>(response);
JsonSerializerSettings jsSetting = new JsonSerializerSettings();
jsSetting.NullValueHandling = NullValueHandling.Ignore;
return JsonConvert.DeserializeObject<T>(response, jsSetting);
}
catch (Exception ex)
{
WriteLog.WriteLogger.Error("将json字符串转换为对象出错!\r\njson为:" + response, ex);
return default(T);
}
}
Newtonsoft.Json.JsonSerializerSettings 是对返回数据的一些默认转换.
空值设置:
NullValueHandling 枚举默认是 Include,如果有 int 类型的字段是 null,会报错,把 JsonSerializerSettings.NullValueHandling 设置为 NullValueHandling.Ignore 之后,就会忽略值为 null 的字段。时间设置:
setting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
2. System.Runtime.Serialization.Json.DataContractJsonSerializer
/// <summary>
/// 将json字符串转换为对象(使用DataContractJsonSerializer)
/// </summary>
/// <param name="response"></param>
/// <param name="dateformatstring">时间格式</param>
/// <returns></returns>
public T ConvertJson<T>(string response)
{
try
{
DataContractJsonSerializer Serializer = new DataContractJsonSerializer(typeof(T));
using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(response)))
{
return (T)Serializer.ReadObject(stream);
}
}
catch (Exception ex)
{
WriteLog.WriteLogger.Error("将json字符串转换为对象出错!\r\njson为:" + response, ex);
return default(T);
}
}
内容总结
以上是互联网集市为您收集整理的C# 基础 - Json 之间的转换全部内容,希望文章能够帮你解决C# 基础 - Json 之间的转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。