0

0

详解ASP.NET提取多层嵌套json数据的方法

高洛峰

高洛峰

发布时间:2017-02-10 17:02:02

|

2050人浏览过

|

来源于php中文网

原创

本篇文章主要介绍了asp.net提取多层嵌套json数据的方法,利用第三方类库newtonsoft.json提取多层嵌套json数据的方法,有兴趣的可以了解一下。

本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下。

假设需要提取的json字符串如下:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

先引用命名空间:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

可以把上面的json字符串看成一个对象,只要编写对应的类即可(如果使用VS2013进行开发,可以通过“编辑--选择性粘贴--将JSON粘贴为类”快速地将json字符串转换为实体类)

 public class UserInfo
 {
  public string name;
  public int age;
  public address addr;
 }
 public class address
 {
  public string city;
  public string province;
 }

1、将json字符串转换为实体对象的代码如下:

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));

2、读取json中某个属性的值可以使用一下代码:

JObject jsonObj = JObject.Parse(jsonData);
string name=jsonObj ["name"].ToString();
string age=jsonObj ["age"].ToString();
string city=((JObject )jsonObj ["addr"])["city"].ToString();
string province=((JObject )jsonObj ["addr"])["province"].ToString();

3、解释多层嵌套json,获取任意属性的值:

如果需要处理的json字符串如下:

LALAL.AI
LALAL.AI

AI人声去除器和声乐提取工具

下载

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};

然后让你输入一个对象,如“city”,系统就会输出“guangzhou”,输入“age”,就输出“23”。由于json是多级嵌套的,所以需要逐个遍历,代码如下:

  public string GetJsonValue(JEnumerable jToken, string key)
  {
   IEnumerator enumerator = jToken.GetEnumerator();
   while (enumerator.MoveNext())
   {
    JToken jc = (JToken)enumerator.Current;
    if (jc is JObject || ((JProperty)jc).Value is JObject)
    {
     return GetJsonValue(jc.Children(), key);
    }
    else
    {
     if (((JProperty)jc).Name == key)
     {
      return ((JProperty)jc).Value.ToString();
     }
    }
   }
   return null;
  }

调用GetJsonValue的代码:

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));

如果是多层嵌套的数组,也可以使用以下代码:

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);

4、JSON转XML:

复制代码 代码如下:


string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。

更多详解ASP.NET提取多层嵌套json数据的方法相关文章请关注PHP中文网!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.6万人学习

JSON与AJAX原理与实战
JSON与AJAX原理与实战

共5课时 | 0.8万人学习

极客学院ASP.NET视频教程
极客学院ASP.NET视频教程

共90课时 | 20.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号