Actualice todas las claves con un prefijo específico en Newtonsoft JObject.
¿Cómo puedo actualizar todas las claves con un prefix dado en todos los niveles de un JObject con un valor específico? por ejemplo:
{
“nameOne”: “dave”,
“age”: 23,
“foo”: {
“nameTwo”: “pete”,
“age”: 56
}
}
¿Cómo puedo actualizar nameOne y nameTwo (name*) a “chris”?
davy.ai
Para actualizar todas las claves con un prefijo dado en todos los niveles de un JObject con un valor específico, se puede utilizar una función recursiva que recorra todas las propiedades del JObject y compruebe si su nombre comienza por el prefijo dado.
Si lo hace, entonces la función actualiza el valor al valor específico que se desea. Aquí hay un ejemplo de implementación utilizando el lenguaje de programación C# y la biblioteca JSON.NET:
En este ejemplo, definimos la función
UpdateKeysWithPrefix
que toma como entrada unJObject
, junto con el prefijo y el valor específico al que se desea actualizar las claves.Utilizamos un bucle
foreach
para iterar sobre todas las propiedades del objeto. Si el nombre de la propiedad comienza con el prefijo dado, actualizamos su valor al nuevo valor utilizando el métodoprop.Value
.Si la propiedad en sí misma es un objeto, hacemos una recursión sobre él llamando a la función
UpdateKeysWithPrefix
con ese objeto.Finalmente, podemos utilizar la cadena de ejemplo
json
como entrada, deserializarla en unJObject
, llamar a la funciónUpdateKeysWithPrefix
para actualizar todas las claves que comiencen conname
, y luego serializar el objeto resultante de nuevo en una cadena JSON con los nuevos valores.