Я конвертирую код, который был написан с использованием NewtonSoft.JsonNet. На самом деле это обычное форматирование типа Json Media. Я должен изменить его, потому что Json.Net доказал, что его производительность очень низка при загрузке. Это также доказывает многое сравнение с Интернетом.Json Deserialization и управление экземпляром
В любом случае, у меня есть базовый тип: CatalogueItem
. Три типа получены из этого типа и называются ContainerItem
, SectionItem
и RefresherItem
. Основываясь на свойстве объекта Json, который называется itemType
, мы решаем, какой подкласс должен быть создан.
var type = (string)jsonObject.Property("itemType");
switch (type)
{
case "Container":
return new ContainerItem();
case "Section":
return new SectionItem();
case "Refresher":
return new RefresherItem();
}
Мы использовали, чтобы сделать это с помощью создания пользовательского CustomCreationConverter
, и добавить его в Serializer.Converters
коллекции Json.Net.Serializer
. Пытаясь избавиться от Json.Net, я использую ServiceStack.Text
, но я не знаю, как я могу управлять типом, который создается с его помощью. Может ли кто-нибудь помочь мне в этом?
p.s. Я нашел этот пост в StackOverflow, на который была получена подобная проблема. Однако я получаю json от стороннего веб-сервиса, поэтому я не могу включать в него имена типов. Кроме того, я не могу использовать общую версию JsConfig
, потому что MediaTypeFormatter
не имеет каких-либо общих методов.
Даже если это вам не помогло, можете ли вы связать свой вопрос с другими сообщениями, которые вы упомянули, на которые вы смотрели? Это может помочь другим ответить на ваш вопрос. –