Извините за мой бедный английский sh.
У меня был успешный запуск кода из этого do c. Я получил новые данные JSON, и есть еще одна проблема.
Данные JSON определяются следующим образом:
{
"id": 3,
"title": "aaa",
"typeDiscriminator": "search",
"settingDataTemp": {
"id": 11,
"type": "11",
"value": "11"
}
}
А класс POCO определяется как:
public class RootContent
{
public int id { get; set; }
public string title { get; set; }
public PageModuleType typeDiscriminator { get; set; }
public IPageSubContentSetting settingDataTemp { get; set; }
}
Я хочу десериализовать объект settingDataTemp
, поэтому метод JsonConverter
Read
, например
public override IPageSubContentSetting Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
PageModuleType typeDiscriminator;
string rawText;
var discriminatorPropName = nameof(RootContent.typeDiscriminator);
using (var jsonDocument = JsonDocument.ParseValue(ref reader))
{
if (!jsonDocument.RootElement.TryGetProperty(discriminatorPropName, out var typeProperty))
{
throw new JsonException();
}
var result = Enum.TryParse(typeProperty.GetString(), true, out typeDiscriminator);
if (!result)
{
throw new JsonException();
}
rawText = jsonDocument.RootElement.GetRawText();
}
}
Не может получить typeDiscriminator
из JsonDocument.RootElement
, потому что он определен на внешнем объекте.
Есть ли способ получить typeDiscriminator
значение?