Когда я запускаю System.Text.Json.JsonSerializer.Deserialize, все значения преобразуются в JsonElement вместо фактического значения. Я ожидаю, что числа будут преобразованы в какой-то тип int или long, а все остальное будет строкой. Метод Serialize создает строку json, как я и ожидал, но десериализация — это не то, что мне нужно. Есть ли какие-то параметры, которые я могу использовать для получения желаемого значения?
var data = new Dictionary();
data["Key1"] = "Value1";
data["Key2"] = 2;
data["Key3"] = DateTime.Now;
var json = JsonSerializer.Serialize(data);
var newData = JsonSerializer.Deserialize(json);
// this will pass, because all values were deserialized into JsonElement
Assert.IsType(newData["Key2"]);
// this will fail, because the value was deserialized into JsonElement
Assert.IsType(newData["Key2"]);
Значение строковой переменной json:
{
"Key1":"Value1",
"Key2":2,
"Key3":"2026-03-02T11:25:24.5934736-05:00"
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... sonelement