Entonces, cuando tengo un JsonNode, puedo preguntar si es un JsonObject o un JsonArray y trabajar con ellos. Pero cuando el nodo es un valor real, ¿cómo sé si es una cadena, un número o un valor booleano?
Por supuesto, podría intentar analizar el valor, pero luego un número transmitido en una cadena se convertiría en un número en lugar de una cadena que me gustaría evitar.
Estoy usando System.Text.Json con .NET 6.
Desde la fuente , parece que un JsonValue simplemente envuelve un JsonElement . Entonces puede hacer .GetValue<JsonElement>() (que pasa esta verificación ) y luego inspeccionar su propiedad ValueKind .
Cada JsonProperty tiene dos propiedades: nombre y valor de tipo JsonElement. JsonElement tiene una propiedad Enum llamada ValueKind que puede ayudarlo a determinar de qué tipo de datos es su valor JSON.
Puede obtener JsonProperties llamando a .EnumerateObject() en su JsonElement. Puede trabajar con su documento Json como JsonElement en lugar de JsonObject.