C sharp - Remover un dato en una lista de listas JSON

 
Vista:

Remover un dato en una lista de listas JSON

Publicado por Juan Arroz (1 intervención) el 22/04/2021 04:56:40
Hola, llevo tiempo buscando una forma de meterme en una lista que está dentro de otra lista para borrar una lista según un dato que esté dentro de la lista que quiero eliminar, pero no lo he podido solucionar, esta es la cadena:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "Empresas": [
    {
      "NombreEmpresa": "TEST1"
      "Empleados": [
        {
          "Nombre": "Matias Vargas",
          "FechaNacimiento": ""
        },
        {
          "Nombre": "Luis Pérez",
          "FechaNacimiento": ""
        }
      ],
    },
    {
      "NombreEmpresa": "TEST2",
      "Empleados": [
        {
          "Nombre": "Martin Sanchez",
          "FechaNacimiento": "",
        }
      ]
    }
  ]
}

Como ven quiero meterme dentro de "Empresas" para después meterme dentro de los empleados de la empresa que se llame "TEST1" y borrar a Luis Pérez (Su nombre y fecha de nacimiento)

Intenté hacer esto:
1
2
3
4
5
6
7
8
9
string readed = File.ReadAllText("empresas.json");
var jObject = JObject.Parse(readed);
JArray EmpleadosArray = (JArray)jObject["Empleados"].Where(obj => obj["NombreEmpresa"].Value<string>() == "TEST1");
var empleadoParaEliminar = EmpleadosArray.Where(obj => obj["Empleados"].Where(obj2 => obj2["Nombre"].Value<string>() == "Luis Pérez")));
 
foreach (var item in empleadoParaEliminar)
{
       EmpleadosArray.Remove(item);
}

Pero obviamente iba a dar errores y no iba a funcionar

"No se puede convertir implícitamente el tipo 'System.Collections.Generic.IEnumerable<Newtonsoft.Json.Linq.JToken>' en 'bool'"

"No se puede convertir expresión lambda en el tipo delegado indicado porque algunos de los tipos de valores devueltos del bloque no se pueden convertir implícitamente en el tipo de valor devuelto del delegado"

No necesito hacerlo así exactamente, si existe otra forma de acceder a los datos agradecería bastante que me la pasaran
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Remover un dato en una lista de listas JSON

Publicado por Miguel (143 intervenciones) el 22/04/2021 16:04:13
Lo mejor es que a tu texto JSON la conviertas a una clase en C# y despues recorras la propiedad lista para eliminar el elemento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar