LINQ to JSON en C#
Consultar el árbol JSON en sí, antes de que exista clase alguna.
using Newtonsoft.Json.Linq;
var feed = JArray.Parse("""
[{"name": "auth", "errors": 0}, {"name": "api", "errors": 7},
{"name": "worker", "errors": 2}]
""");
// LINQ opera directo sobre los tokens, antes de que exista clase alguna
var noisy = feed
.Where(s => (int)s["errors"] > 0)
.OrderByDescending(s => (int)s["errors"])
.Select(s => $"{s["name"]}: {s["errors"]}");
Console.WriteLine(string.Join("\n", noisy));
Cómo funciona
JArray.Parseproduce tokens que LINQ puede enumerar.- Casts como
(int)s["errors"]leen hojas dentro de la consulta. - Filtra, ordena y proyecta sin una clase modelo a la vista.
Palabras clave y builtins usados aquí
intstringusingvar
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 415
- Tokens
- 75
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 53 segundos.
Paso 3 de 3 en JSON con Newtonsoft; paso 3 de 16 en El ecosistema abierto.