C# 解析“JSON“格式数据和网络实战案例 入门

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: C# 解析“JSON“格式数据和网络实战案例 入门

实战:

前言:

解析JSON格式的数据对于爬虫来说非常重要,网页中大部分的接口基本返回的都是这个格式,如果只是想要小部分的数据可以使用字符串的分割,但是一般爬取内容基本不会小部分…如果一直使用字符串分割非常的消耗时间和内存

什么是JSON格式?

先看看长什么样子

这是一个对象格式的数据

{
  "name": "生产队的驴",
  "age": "17",
  "state": "在线",
  "id": "dpc5201314",
  "phone": "18888888888", 
}

这就是一个简单的JSON格式的数据,当然爬虫一般数据没那么点…

JSON分为两种格式 一种是对象(Objtect),另一种是数组(Array) 不同的格式解析的方法不一样 但大同小异

分辨格式:

分辨格式特别简单

这是看他前面的符号 { } 是对象 ,[ ] 是数组

对象格式:

数组格式:

{
    "employees": [
        {
            "firstName": "Bill",
            "lastName": "Gates"
        },
        {
            "firstName": "George",
            "lastName": "Bush"
        },
        {
            "firstName": "Thomas",
            "lastName": "Carter"
        }
    ]
}

{ 这是对象 }

[ 这是数组 ]

数组是可以通过下标访问的

JSON结构:

可以看到他是一个 数型 结构

访问里面的元素结需要 先拿下 树根(employees)然后这得到 树叶(firstName)

上面说到 数组是可以通过下标访问对应的内容


C#解析

简单的介绍了一下他的格式 接下来就是这么使用C#解析他了

需要使用到 Newtonsoft.Json 类库

安装即可

命名空间:

using Newtonsoft.Json.Linq;

记得导入命名空间

对象 和 数组所以的函数不一样

对象:JObject
数组:JArray

JS整理工具:

正常爬虫 返回的数据非常的乱 所以需要搭配JS工具来整理

无从下手

整理后一目了然

在线JS解析工具


对象解析:

首先需要有JSON数据,这里方便演示直接从本地导入…当然正常爬虫是从服务器上获取的…只是为了演示

StreamReader read = new StreamReader(@"C:\Users\Acer\Desktop\1.txt", Encoding.UTF8);
  //读取文本
string str =read.ReadToEnd();

文本内容

{ } 是对象 使用对象的函数解析,

JObject arr = JObject.Parse(str);
 Console.WriteLine("名字:"+arr["name"]);
  Console.WriteLine("年龄:" + arr["age"]);
  Console.WriteLine("状态:" + arr["state"]);
 Console.WriteLine("账号:" + arr["id"]);
 Console.WriteLine("手机号:" + arr["phone"]);

通过对象 获取他的节点 arr[“age”]

因为不是实战…没难度

数组解析:

这个其实还是一个 对象 里面包含了一个数组 所以需要强制转换

读取JSON:

StreamReader read = new StreamReader(@"C:\Users\Acer\Desktop\2.txt", Encoding.UTF8);    
        string str =read.ReadToEnd();

强制转格式:

JObject j = JObject.Parse(str);
JArray r = (JArray)j["employees"];
//强制转成数组 因为要获取employees

转换成功后就可以 使用下标去获取 需要的数据了

显示数据:

Console.WriteLine(r[1]["firstName"]);

第一个[ ]为下标 第二个为 获取哪个节点

如果需要显示全部数据那就可以 使用循环访问下标 获取

for (int i = 0; i < r.Count; i++)
            {
                Console.WriteLine(r[i]["firstName"]);
            }

其他节点也是一样的

for (int i = 0; i < r.Count; i++)
            {
                Console.WriteLine(r[i]["firstName"]);
                Console.WriteLine(r[i]["lastName"]+"\n");
            }


说那么多 直接加入实战…

某评论区:

数据太乱 去整理

在线JS解析工具

因为JSON是可以嵌套的 当每次想访问哪个节点时 就必须先获取上一个节点

所有的数据都包含 data (树根)上 里还嵌套着 visionCommentList 和 rootComments 其中rootComments 就是他的评论数据 他是一个数组

authorName:用户名

content:评论内容

headurl:用户头像

这是一个对象 先用对象的方式获取他

JObject j = JObject.Parse(str);

获取嵌套的节点:

string js = j["data"]["visionCommentList"]["rootComments"].ToString();
  JArray r = JArray.Parse(js);
  //剩下的就是 数组 然后使用数组的方式解析

循环下标 显示评论

for (int i = 0; i < r.Count; i++)
            {
 Console.WriteLine("\n"+r[i]["authorName"]+": "+r[i]["content"]);
            }

总结:

好像都没什么难度,在真正做爬虫的时候 找接口 和 传递的参数才是难点…

纯手打,点个赞呗~

相关文章
|
3天前
|
存储 缓存 算法
HashMap深度解析:从原理到实战
HashMap,作为Java集合框架中的一个核心组件,以其高效的键值对存储和检索机制,在软件开发中扮演着举足轻重的角色。作为一名资深的AI工程师,深入理解HashMap的原理、历史、业务场景以及实战应用,对于提升数据处理和算法实现的效率至关重要。本文将通过手绘结构图、流程图,结合Java代码示例,全方位解析HashMap,帮助读者从理论到实践全面掌握这一关键技术。
30 13
|
29天前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
135 49
|
11天前
|
数据采集 DataWorks 搜索推荐
阿里云DataWorks深度评测:实战视角下的全方位解析
在数字化转型的大潮中,高效的数据处理与分析成为企业竞争的关键。本文深入评测阿里云DataWorks,从用户画像分析最佳实践、产品体验、与竞品对比及Data Studio公测体验等多角度,全面解析其功能优势与优化空间,为企业提供宝贵参考。
72 13
|
8天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
14天前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
18天前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
21天前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
27 1
|
27天前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
28天前
|
机器学习/深度学习 数据采集 数据挖掘
Python编程语言的魅力:从入门到进阶的全方位解析
Python编程语言的魅力:从入门到进阶的全方位解析
|
4天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
41 17

推荐镜像

更多