用Newtonsoft将json串转为对象的方法(详解)

 更新时间:2017年04月07日 09:58:56   投稿:jingxian  
下面小编就为大家带来一篇用Newtonsoft将json串转为对象的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

首先,将json串转为一个JObject对象:

JObject jo = (JObject)JsonConvert.DeserializeObject(CurrentSelectedItemReq);

这个JObject是一个“值对”类型,比如说我们的json串是这样:

{
 "rows":[
  [
   {"NumIid":"001"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ],
  [
   {"NumIid":"002"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ],
  [
   {"NumIid":"003"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ]
  ]
}

那么可以jo["rows"]就是一个数组,如果这个反之如果不是数组可能是一个对象,那么我们根据他实际是一个什么值来进行强制转换。

以上面这个json串为例,我们这样取到这个数组:

JArray arr = (JArray)jo["rows"];

我们发现这个数组里面还是一个数组,而里层数组里面才是一个object,那么我们可以这样取:

for (int i = 0; i < arr.Count; i++) 
    {
      JArray arr2 = (JArray)arr[i];
      for (int j = 0; j < arr2.Count; j++) 
      {
        JObject obj = (JObject)arr2[j];

        Response.Write(obj["NumIid"]);
        Response.End();
      }
        
    }

如果实际是一个数组,我们就用JArray强制转换,如果实际是一个值对,我们就用JObject强制转换。

最后一层应该是一个值对类型的object,怎么把这些值全部取出来?

最后应该是形如:

{"NumIid":"003"}

取值很简单,直接:

string str=obj["NumIid"];

问题是有时候这个obj是这样的:

{"PicUrl":"xxx.png"}

而且你不知道他什么时候是什么。

这时应该这样取:

foreach (KeyValuePair<string, JToken> kp in obj) 
        {
          Response.Write(kp.Key);
          Response.Write("=");
          Response.Write(kp.Value);
          Response.End();
        }

以上这篇用Newtonsoft将json串转为对象的方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#中如何使用redis

    C#中如何使用redis

    这篇文章主要介绍了C#中如何使用redis,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#识别出图片里的数字和字母

    C#识别出图片里的数字和字母

    本文给大家分享的是C#识别出图片里的数字和字母的代码,主要是识别以前公司的软件注册码截图里的数字和字母,功能很简单,也存在很大的局限性,这里仅仅是分享,小伙伴们参考下。
    2015-03-03
  • C#连接数据库和更新数据库的方法

    C#连接数据库和更新数据库的方法

    这篇文章主要介绍了C#连接数据库和更新数据库的方法,需要的朋友可以参考下
    2015-08-08
  • 浅析依赖注入框架Autofac的使用

    浅析依赖注入框架Autofac的使用

    Autofac是一款IOC框架,比起Spring.NET,Unity,Castle等等框架,它很轻量级且性能也很高,下面小编给大家介绍下依赖注入框架Autofac的使用。
    2015-07-07
  • Winform消除button按下出现的虚线简单实现方法

    Winform消除button按下出现的虚线简单实现方法

    这篇文章主要介绍了Winform消除button按下出现的虚线简单实现方法,通过重写button设置Selectable参数实现该功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#/VB.NET 实现在PDF表格中添加条形码

    C#/VB.NET 实现在PDF表格中添加条形码

    条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中插入条形码,需要的可以参考一下
    2022-06-06
  • C# 获取数据库中所有表名、列名的示例代码

    C# 获取数据库中所有表名、列名的示例代码

    这篇文章主要介绍了C# 获取数据库中所有表名、列名,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# winform循环播放多个视频

    C# winform循环播放多个视频

    这篇文章主要为大家详细介绍了C# winform循环播放多个视频的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • C#中DataGridView操作技巧

    C#中DataGridView操作技巧

    这篇文章主要介绍了C#中DataGridView操作技巧,包括了DataGridView的初始化、添加行、添加列、排序等操作技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • Unity中使用反射机制调用函数

    Unity中使用反射机制调用函数

    这篇文章主要为大家详细介绍了Unity中使用反射机制调用函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论