Как заставить JsonSerializer.Deserialize<> не оставлять объекты как JsonElement? [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Как заставить JsonSerializer.Deserialize<> не оставлять объекты как JsonElement? [дубликат]

Сообщение Anonymous »

Когда я запускаю 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»