将JSON字符串反序列化为指定的.NET对象类型

前言:

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

输出为:操作成功

原文地址:https://www.cnblogs.com/Can-daydayup/p/11735950.html

时间: 2024-11-05 20:28:59

将JSON字符串反序列化为指定的.NET对象类型的相关文章

将json字符串反序列化为DataTable 对JsonConvert的补充

/// <summary> /// 扩展方法,将一个Json字符串反序列化为DataTable /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="str"></param> /// <returns>DataTable</returns> public static DataTab

C# Json数据反序列化为Dictionary并根据关键字获取指定值1

Json数据: { "dataSet": { "header": { "returnCode": "0", "errorInfo": "HTTP请求错误", "version": "V1.0R010", "totalRows": "2000", "returnRows": "20

C# Json数据反序列化为Dictionary并根据关键字获取指定值

Json数据: { "dataSet": { "header": { "returnCode": "0", "errorInfo": "HTTP请求错误", "version": "V1.0R010", "totalRows": "2000", "returnRows": "20

nodejs将JSON字符串转化为JSON对象

如何将JSON字符串转化为JSON对象? JSON.parse(str)       JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法: 问题来了,道理我都懂可是就是报错! 这是我的一个JSON文件,里面是一些定义的JSON测试数据: 这是核心代码: 这是报错的信息: 为什么报错? 因为我的json文件读出来的开头有一个空格.就这回事. ok,修改代码,测试 使用trim去掉开头多余的空格 ok,通过:

C#Json数据反序列化为Dictionary并根据关键字获取指定的值

Json数据: { "dataSet": { "header": { "returnCode": "0", "errorInfo": "HTTP请求错误", "version": "V1.0R010", "totalRows": "2000", "returnRows": "20

从HTTP request的body中拿到JSON并反序列化为一个对象

import com.google.gson.Gson; import org.apache.struts2.ServletActionContext; import javax.servlet.ServletRequest; import java.io.*; /** * Created by sky.tian on 2015/1/12. */ public class Test { private static final int DEFAULT_BUFFER_SIZE = 1024 * 4

json字符串转化为list泛型

json字符串格式如下: String jsonStr = "{\"data\":[{\"id\":\"001\",\"name\":\"evan\",\"age\":\"18\"},null,{\"id\":\"002\",\"name\":\"zl\",\"age\

一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型;

Json.net 序列化程序会将.Net 值转换为json值,表格中是支持转换的对象类型: .net 对象类型 转换后的Json 类型 IList, IEnumerable, IList<T>, Array,datatable json数组 IDictionary, IDictionary<TKey, TValue> json对象 Object (more detail below) json对象 Json数组教程:http://www.runoob.com/json/js-jso

通过获取客户端Json数据字符串,反序列化为实体对象的一段代码

#region 保存候选人数据 /// <summary> /// 保存候选人数据 /// </summary> /// <param name="entity"></param> /// <returns></returns> [AdminAuthorize] [ValidateInput(false)] [AcceptVerbs(HttpVerbs.Post)] public ActionResult Save