• 利用Newtonsoft.Json将json转换为实体对象


    需要先引用命名空间
    Newtonsoft.Json 和 Newtonsoft.Json.Linq
    1.可自行网上下载 Newtonsoft.Json.dll ,在项目中添加引用
    2.或者是直接使用VS的内置NuGet包管理器中搜索Newtonsoft.Json 安装到指定项目

    1.针对简单的json串

    需要处理的json串
    “{
    “message”: “操作成功”,
    “data”: “This is a data”,
    “success”: “true”
    }”

    解析方法:

    string json = "{"message": "操作成功","data": "This is a data","success": "true"}";
    Object obj = JsonConvert.DeserializeObject(json);
    Newtonsoft.Json.Linq.JObject js = obj as Newtonsoft.Json.Linq.JObject;//把上面的obj转换为 Jobject对象
    string data = js["data"].ToString();

    补充:

    dynamic model = JObject.Parse("{"value":"巧克力1","color":"#173177"}");
    string sss = model.value;

     不知道key的情况下用下面程序拿到key和value

    JObject json = (JObject)JsonConvert.DeserializeObject(listdata);
    string openId = json["OpenID"].ToString();
    foreach (var jp in json)
    {
    string key = jp.Key.ToString();
    string val = jp.Value.ToString();
    }

    2.针对简单的json串数组
    需要处理的json串数组
    [
    {
    “deviceID”: “110722”,
    “discloseTime”: “2019-03-08 01:00:00”,
    “projectId”: “24”
    },
    {
    “deviceID”: “110732”,
    “discloseTime”: “2019-03-08 15:40:12”,
    “projectId”: “24”
    },
    {
    “deviceID”: “110735”,
    “discloseTime”: “2019-03-08 16:40:12”,
    “projectId”: “24”
    }
    ]
    解析:

    string json = "[{"deviceID": "110722","discloseTime": "2019-03-08 01:00:00","projectId": "24"},{"deviceID": "110732","discloseTime": "2019-03-08 15:40:12","projectId": "24"},{"deviceID": "110735","discloseTime": "2019-03-08 16:40:12","projectId": "24"}]";
    Object obj = JsonConvert.DeserializeObject(json);
    Newtonsoft.Json.Linq.JArray jarray = obj as Newtonsoft.Json.Linq.JArray;//把上面的obj转换为 Jobject对象
    List<Body> bodyList = new List<Body>();
    for (int i = 0; i < jarray.Count; i++)
    {
    string listdata = jarray[0].ToString();
    Object obj1 = JsonConvert.DeserializeObject(listdata);
    Newtonsoft.Json.Linq.JObject js1 = obj1 as Newtonsoft.Json.Linq.JObject;//把上面的obj转换为 Jobject对象
    Body body = new Body
    {
    DeviceID= js1["deviceID"].ToString(),
    DiscloseTime = js1["discloseTime"].ToString(),
    ProjectId = js1["projectId"].ToString()
    };
    bodyList.Add(body);
    }

    3.针对复合的json串
    需要处理的json数据
    {
    “message”: “操作成功”,
    “data”: [
    {
    “deviceID”: “110722”,
    “discloseTime”: “2019-03-08 01:00:00”,
    “projectId”: “24”
    },
    {
    “deviceID”: “110732”,
    “discloseTime”: “2019-03-08 15:40:12”,
    “projectId”: “24”
    },
    {
    “deviceID”: “110735”,
    “discloseTime”: “2019-03-08 16:40:12”,
    “projectId”: “24”
    }
    ],
    “success”: ”true“
    }

    解析:

    List<Body> bodyList = new List<Body>();
    Object obj = JsonConvert.DeserializeObject(json);
    Newtonsoft.Json.Linq.JObject js = obj as Newtonsoft.Json.Linq.JObject;//把上面的obj转换为 Jobject对象
    JArray jarray = (JArray)js["data"];
    for (int i = 0; i < jarray.Count; i++)
    {
    string data = jarray[0].ToString();
    Object obj1 = JsonConvert.DeserializeObject(data);
    Newtonsoft.Json.Linq.JObject js1 = obj1 as Newtonsoft.Json.Linq.JObject;//把上面的obj转换为 Jobject对象
    Body body = new Body
    {
    DeviceID = js1["deviceID"].ToString(),
    DiscloseTime = js1["discloseTime"].ToString(),
    ProjectId = js1["projectId"].ToString()
    };
    bodyList.Add(body);
    }
    ————————————————
    版权声明:本文为CSDN博主「MelanceXin」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/q672405097/article/details/88356515

  • 相关阅读:
    分布式的并行计算技术
    深入学习 jQuery 选择器系列第三篇——过滤选择器之索引选择器
    JavaScript--我所理解的原型链
    JavaScript--我所理解的闭包
    JavaScript--函数的形参和函数内部声明的变量或函数重名时的问题
    JavaScript--substring 和 substr 方法手记
    CSS 和 CSS3 中的 background
    CSS3的 border-radius 和 box-shadow 及 text-shadow
    CSS3-渐变这个属性
    CSS中的伪类和伪元素回顾
  • 原文地址:https://www.cnblogs.com/lywork/p/12272112.html
Copyright © 2020-2023  润新知