zoukankan      html  css  js  c++  java
  • 利用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

  • 相关阅读:
    200斤的甄子丹还是这么灵活能打欢乐,拯救无聊就靠他了
    redis 发布与订阅
    洛谷P2294 [HNOI2005]狡猾的商人
    洛谷P2294 [HNOI2005]狡猾的商人
    崛起于Springboot2.X之开发拦截器(21)
    pfSense®2.4.4发布后,原pfSense 黄金会员的服务将免费使用!
    pfSense®2.4.4发布后,原pfSense 黄金会员的服务将免费使用!
    pfSense®2.4.4发布后,原pfSense 黄金会员的服务将免费使用!
    pfSense®2.4.4发布后,原pfSense 黄金会员的服务将免费使用!
    Openssh
  • 原文地址:https://www.cnblogs.com/lywork/p/12272112.html
Copyright © 2011-2022 走看看