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:
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:
Pero obviamente iba a dar errores y no iba a funcionar
No necesito hacerlo así exactamente, si existe otra forma de acceder a los datos agradecería bastante que me la pasaran
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


0