原文出处:ASP.NET中使用JObject和JArray解析Json数据 - 谢友海 - 博客园

本章将和大家分享如何在ASP.NET中使用JObject和JArray解析Json数据。话不多说,下面我们直接来看一个示例。

数据样例(模拟接口返回的Json字符串),如下所示:

{"code":1,"msg":"获取成功","total":3,"data":[{"StuId":"10000","Name":"张三","Age":18},{"StuId":"10001","Name":"李四","Age":15},{"StuId":"10002","Name":"王五","Age":19}],"otherinfo":{"year":2002,"schools":[{"name":"北京大学","ranking":1},{"name":"清华大学","ranking":2},{"name":"北京航空航天大学","ranking":3}]}
}

使用JObject和JArray解析上面的Json数据,如下所示:

using System;using System.Linq;
using Newtonsoft.Json.Linq;namespace MyJObjectAndJArray
{class Program{static void Main(string[] args){Show();}/// <summary>/// 展示/// </summary>static void Show(){Console.WriteLine("**********************演示开始**********************");Console.WriteLine("");//模拟接口返回Json字符串string strJson = "{\"code\":1,\"msg\":\"获取成功\",\"total\":3,\"data\":[{\"StuId\":\"10000\",\"Name\":\"张三\",\"Age\":18},{\"StuId\":\"10001\",\"Name\":\"李四\",\"Age\":15},{\"StuId\":\"10002\",\"Name\":\"王五\",\"Age\":19}],\"otherinfo\":{\"year\":2002,\"schools\":[{\"name\":\"北京大学\",\"ranking\":1},{\"name\":\"清华大学\",\"ranking\":2},{\"name\":\"北京航空航天大学\",\"ranking\":3}]}}";//Json解析JObject jObject = JObject.Parse(strJson);if (jObject.ContainsKey("code")) //判断是否包含某个属性名{Console.WriteLine("包含属性名code");}if (!jObject.ContainsKey("error")){Console.WriteLine("不包含属性名error");}var msg = jObject.ContainsKey("msg") ? jObject.Value<string>("msg") : "无返回信息";Console.WriteLine($"msg={msg}");var code1 = Convert.ToInt32(jObject["code"]); //方式1var code2 = jObject.Value<int>("code"); //方式2Console.WriteLine($"code1={code1} , code2={code2}");var year1 = Convert.ToInt32(jObject["otherinfo"]["year"]); //方式1var year2 = jObject["otherinfo"].Value<int>("year"); //方式2Console.WriteLine($"year1={year1} , year2={year2}");var stuId1 = Convert.ToInt32(jObject["data"][0]["StuId"]);var stuId2 = jObject["data"][1].Value<int>("StuId");JArray data1 = jObject.Value<JArray>("data") ?? new JArray(); //方式1var stuId3 = Convert.ToInt32(data1[2]["StuId"]);JArray data2 = (JArray)jObject["data"] ?? new JArray(); //方式2var stuId4 = data2[2].Value<int>("StuId");Console.WriteLine($"stuId1={stuId1} , stuId2={stuId2} , stuId3={stuId3} , stuId4={stuId4} , data1.Count={data1.Count}");if (jObject.Value<int>("code") == 1){var apiData =(jObject.Value<JArray>("data") ?? new JArray()).Select(m => new{StuId = m.Value<int>("StuId"),Name = m.Value<string>("Name"),Age = m.Value<int>("Age"),}).ToList();Console.WriteLine($"apiData.Count={apiData.Count}");var apiSchools =(jObject["otherinfo"].Value<JArray>("schools") ?? new JArray()).Select(m => new{name = m.Value<string>("name"),ranking = m.Value<int>("ranking")}).ToList();Console.WriteLine($"apiSchools.Count={apiSchools.Count}");JObject joOtherInfo = (JObject)jObject["otherinfo"];if (joOtherInfo.ContainsKey("schools")){var apiSchools2 =(joOtherInfo.Value<JArray>("schools") ?? new JArray()).Select(m => new{name = m.Value<string>("name"),ranking = m.Value<int>("ranking")}).ToList();Console.WriteLine($"apiSchools2.Count={apiSchools2.Count}");}}Console.WriteLine("");Console.WriteLine("**********************演示结束**********************");Console.ReadKey();}}
}

PS:项目中需要引入Newtonsoft.Json程序包。

运行结果如下:

ASP.NET中使用JObject和JArray解析Json数据 (实用、赞)相关推荐

  1. ASP.NET中使用JObject和JArray解析Json数据

    本章将和大家分享如何在ASP.NET中使用JObject和JArray解析Json数据.话不多说,下面我们直接来看一个示例. 数据样例(模拟接口返回的Json字符串),如下所示: {"cod ...

  2. Web中JS(Javascript)解析JSON数据的方法

    js解析json数据,可以使用JSON.parse()方法来实现解析.JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象 下面我们就结合简单的代码示例,给大家介绍j ...

  3. Gson解析JSON数据中动态未知字段key的方法

    转载自:https://blog.csdn.net/jdsjlzx/article/details/76785239 有时在解析json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的 ...

  4. Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)

    JSON介绍: JSON:JavaScript对象表示法 JSON是存储和交换文本信息的语法. 特点: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更易理解 ...

  5. 在php中怎么解析json数据,php解析json数据

    在我们使用编程语言的时候,对于数据的格式会出现不能直接使用的情况,所以就会有解析的操作.在php中有专门解析json的函数,那就是json_decode().想要进一步的运用这个函数,我们还需要对它的 ...

  6. 深入分析jquery解析json数据

    我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. JSON数据如下,是一个嵌套JSON: {"comments":[{& ...

  7. java json相加_JAVA,当某个json数据中一个字段与另一个json数据中的字段值相同时,对两个json进行合并且相加,...

    展开全部 要判断json数据的字段62616964757a686964616fe78988e69d8331333365636634与其他数据是否相同,那么肯定是要先解析json数据.解析json数据的 ...

  8. JAVA 解析JSON数据

    JSON 是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java 语言中解析json数 ...

  9. JSONObject 和 GSON 解析 JSON 数据详解(转)

    转载:http://www.jianshu.com/p/f99de3ec0636 点此进入:从零快速构建APP系列目录导图 点此进入:UI编程系列目录导图 点此进入:四大组件系列目录导图 点此进入:数 ...

最新文章

  1. BZOJ 1443: [JSOI2009]游戏Game
  2. C++ Primer 5th笔记(chap 13 拷贝控制)=default
  3. 第一次安装Intellij IDEA过程中遇到的坑
  4. 淘宝架构师为你揭秘2017双十一分布式缓存服务Tair
  5. Python学习笔记字符串Str
  6. C#操作Office.word(三)
  7. Z.ExtensionMethods 一个强大的开源扩展库
  8. 重磅!清华这个决定冲上热搜!网友:不愧是清华…
  9. 10月21日下午PHP常用函数
  10. 16、java包装类
  11. 机器学习基础(十八) —— decision stump
  12. #地形剖面图_备战中考 地理图表判读——地形剖面图
  13. pytorch损失函数
  14. Tox —— 保证通话信息安全的即时聊天工具
  15. 基于html评定奖学金页面代码,学校助学奖学金申请表页面模板
  16. mac os重置服务权限
  17. android studio迁移,AndroidStudio 一键迁移至 AndroidX
  18. 中科院广州电子CASAIM与东风日产在3D打印生产制造发动机检具及治具应用研究项目顺利落地
  19. 2008年6月it公司红黑榜/口碑榜
  20. 安全事件日志中的事件编号与描述

热门文章

  1. Git 分支管理-创建与合并
  2. javascript 文本框限制输入1到10位数字正则表达式
  3. rtl8188gu网卡驱动安装
  4. 生成式模型 vs 判别式模型
  5. android studio ui源码,KOK官方合作注册连接:http://kokbet1533.com -官网
  6. 三星UT-Exynos4412开发板10.1寸LVDS高清液晶屏
  7. linux设置中国时区,Linux更改中国时区
  8. 我的周记11——“一直前行,一直成长”
  9. java 算法学习 罗马数字转整数
  10. eclipse中git的使用(转载)