Análisis de datos en formato "JSON" en C# y primeros pasos con casos prácticos de red

combate real:
Por favor agregue la descripción de la imagen

Prefacio:

El análisis de datos en formato JSON es muy importante para los rastreadores. La mayoría de las interfaces en la página web básicamente devuelven este formato. Si solo desea una pequeña parte de los datos, puede usar la segmentación de cadenas, pero generalmente el contenido rastreado no será pequeño. .Parte... Si siempre usa la segmentación de cadenas, consume mucho tiempo y memoria

¿Qué es el formato JSON?
Veamos qué aspecto tiene

Estos son datos en formato de objeto.

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

Estos son datos en formato JSON simple, por supuesto, los datos generales del rastreador no son tanto...

JSON se divide en dos formatos, uno es Object (Object), el otro es Array (Array) Los métodos para analizar diferentes formatos son diferentes pero similares

Distintivo de formato:
El distintivo de formato es muy sencillo
, esto es para ver que el símbolo { } delante de él es un objeto, y [ ] es un array

Formato de objeto: Formato
Por favor agregue la descripción de la imagen
de matriz:

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

{este es un objeto}
[esta es una matriz]

Se puede acceder a las matrices subscribiendo

Estructura JSON:
Por favor agregue la descripción de la imagen
puede ver que es una estructura numérica.
Para acceder al nodo del elemento en él, primero debe eliminar la raíz (empleados) y luego obtener las hojas (nombre).
Como se mencionó anteriormente, la matriz puede acceder a la contenido correspondiente a través de subíndices


El análisis de C#
presenta brevemente su formato y luego usa C# para analizarlo. Debe
usar la biblioteca de clases Newtonsoft.Json
Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen
e instalarla.

Espacios de nombres:

usando Newtonsoft.Json.Linq;

Recuerde importar el espacio de nombres

Los objetos y los arreglos tienen diferentes funciones
Objetos: JObject
Arreglos: JArray

Herramienta de clasificación JS:
los datos devueltos por los rastreadores normales son muy confusos, por lo que deben clasificarse con las herramientas JS
Por favor agregue la descripción de la imagen
.

Después de clasificar, es claro de un vistazo.

Por favor agregue la descripción de la imagen
Herramienta de análisis JS en línea


Análisis de objetos:
primero se requieren datos JSON, lo cual es conveniente para la demostración para importar directamente desde el local... Por supuesto, el rastreador normal se obtiene del servidor... solo para demostración

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

El contenido de texto
Por favor agregue la descripción de la imagen
{ } es el objeto analizado usando la función del objeto,

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"]);

Obtener su nodo arr["edad"] por objeto

Porque no es un combate real... no es difícil.

Análisis de matriz:
Por favor agregue la descripción de la imagen
este es en realidad un objeto que contiene una matriz, por lo que debe convertirse

Leer JSON:

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

Forzar formato de conversión:

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

Después de que la conversión sea exitosa, puede usar el subíndice para obtener los datos necesarios para
inserte la descripción de la imagen aquí
mostrar los datos:

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

El primer [ ] es el subíndice y el segundo es qué nodo obtener.
Por favor agregue la descripción de la imagen
Si necesita mostrar todos los datos, puede usar el ciclo para acceder al subíndice para obtenerlo.

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

Por favor agregue la descripción de la imagen

Lo mismo es cierto para otros nodos.

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

Por favor agregue la descripción de la imagen


Dijo tanto y se unió directamente al combate real...

Un área de comentarios:
Por favor agregue la descripción de la imagen
los datos son demasiado desordenados para organizar la
herramienta de análisis JS en línea
Por favor agregue la descripción de la imagen
porque JSON se puede anidar. Cada vez que desee visitar un nodo, primero debe obtener el nodo anterior.
Por favor agregue la descripción de la imagen
Todos los datos incluyen datos (raíz del árbol) y anidados dentro y fuera Con visionCommentList y rootComments donde rootComments son sus datos de comentarios, es una matriz

nombre del autor: contenido del nombre de usuario
: contenido del comentario
headurl: avatar del usuario

Este es un objeto que primero lo obtiene en la forma de un objeto.

 JObject j = JObject.Parse(str);

Obtener nodos anidados:

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

Bucle de subíndices para mostrar comentarios

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

Por favor agregue la descripción de la imagen

Resumen:
No parece ser difícil. Es difícil encontrar la interfaz y los parámetros para pasar cuando realmente se hace un rastreador...

Puro juego de manos, da un pulgar hacia arriba ~

Supongo que te gusta

Origin blog.csdn.net/dpc5201314/article/details/123025190
Recomendado
Clasificación