您的位置:首页 > Web前端 > JavaScript

将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"];

输出为:操作成功

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐