将JSON字符串反序列化为指定的.NET对象类型
2019-10-25 01:13
1426 查看
前言:
关于将JSON字符串反序列化为指定的.NET对象类型数据常见的场景主要是关于网络请求接口,获取到请求成功的响应数据。本篇主要讲的的是如何通过使用Newtonsoft.Json中的JsonConvert.DeserializeObject<T>(string value)方法将对应的JSON字符串转化为指定的.NET对象类型数据。
方法一、在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用):
如下是一组.NET后台请求接口成功获取到的复杂的JSON字符串数据:
{ "id": "123456", "result": { "data": { "liveToken": "zxcvbnm", "liveStatus": 1, "liveType": 1, "deviceId": "1234567890", "channelId": "0", "coverUpdate": 30, "streams": [{ "hls": "zxcv.safd", "coverUrl": "http://asdaf", "streamId": 0 }], "job": [{ "status": true, "period": "always" }] }, "code": "0", "msg": "操作成功" } }
根据该组JSON字符串格式数据定义对应的对象参数模型:
public class BindDeviceLiveHttpsResponse { public BindDeviceLiveHttpsResult result { get; set; } public string id { get; set; } } public class BindDeviceLiveHttpsResult { public BindDeviceLiveHttpsData data { get; set; } public string code { get; set; } public string msg { get; set; } } public class BindDeviceLiveHttpsData { public string liveToken { get; set; } public int liveStatus { get; set; } public int liveType { get; set; } public string deviceId { get; set; } public string channelId { get; set; } public int coverUpdate { get; set; } public List<BindDeviceLiveHttpsStreams> streams { get; set; } public List<BindDeviceLiveHttpsJob> job { get; set; } } public class BindDeviceLiveHttpsStreams { public string hls { get; set; } public string coverUrl { get; set; } public int streamId { get; set; } } public class BindDeviceLiveHttpsJob { public bool status { get; set; } public string period { get; set; } }
通过JsonConvert.DeserializeObject<自定义模型>(string value)反序列化:
var resultContext = JsonConvert.DeserializeObject<GetLiveStreamInfoResponse>(JSON字符串数据);
//最后我们可以通过对象点属性名称获取到对应的数据
方法二、直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符串数据推荐使用):
如下一组简单的JSON字符串格式数据:
{ "id": "123456", "code": "0", "msg": "操作成功" }
通过JsonConvert.DeserializeObject<Dictionary<string, object>>(string value)方法反序列化为字典数据,在通过key访问对应的value的值:
var resultContext=JsonConvert.DeserializeObject<Dictionary<string, object>>(JSON格式数据); //获取msg的值: var msg=resultContext["msg"]; 输出为:操作成功
相关文章推荐
- XmlSerializer 构造函数 (Type, String) 将指定类型的对象序列化为 XML 文档,也可以将 XML 文档反序列化为指定类型的对象
- ASP.NET Ajax, JQuery & JSON Date Serialization,.net对象系列化为JSON的时候,DateTime类型的转换问题
- .net中将Json字符串转换为指定对象
- .net如何序列换对象为Json字符串
- .Net:反序列化处理Json字符串.转换成List<T>类型
- C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte
- Java中关于Json对象类型和字符串类型之间互相转化的问题 .
- 把对象转换成JSON格式的Object类型和String类型的字符串
- 将 C# 枚举序列化为 JSON 字符串 基础理论
- 表单数据转json对象和序列为字符串
- js 将json字符串转换为json对象的方法解析 作者: 字体:[增加 减小] 类型:转载 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而J
- .net序列化和反系列化json与类型对象转换
- 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象
- 将json字符串反序列化为DataTable
- 如何将C#/.NET 将json字符串格式数据转换成对象
- JS 将变量 转化为字符串的方法, 适用于所有类型,数组, JSON对象,函数和基本类型等
- 关于如何将含有Date类型属性的对象转换成符合实际应用的Json字符串
- JSON类型数据转换为对象,并排除指定的属性.JAVA将购物车数据写入到cookie中
- .net 4中使用 dynamic,将json字符串转成对象的 万能方法。
- 如何实现@ResponseBody,把Json字符串转换为指定类型