Поскольку я не использую более продвинутые функции JSON (но, возможно, одну из описанных ниже), и 3.0 теперь поставляется со встроенным пространством имен/классами для JSON, System.Text.Json, я решил посмотреть, смогу ли я отказаться от предыдущего Newtonsoft.Json по умолчанию.
Обратите внимание, Я знаю, что System.Text.Json не заменит полностью Newtonsoft.Json.
Мне удалось это сделать везде, например< /p>
Код: Выделить всё
var obj = JsonSerializer.Serialize(jsonstring);
var jsonstring = JsonSerializer.Serialize(obj);
С помощью Newtonsoft.Json это можно сделать
Код: Выделить всё
JsonConvert.PopulateObject(jsonstring, obj);
У меня недостаточно опыта, чтобы понять, как использовать существующие объекты.
Может быть быть возможной будущей функцией в .Net Core (спасибо Мустафе Гюрселю за ссылку), а пока (а что, если этого не произойдет),...
...я сейчас Интересно, можно ли добиться чего-то подобного тому, что можно сделать с помощью PopulateObject?
Я имею в виду, возможно ли это с любым другим System.Text.Json, чтобы выполнить то же самое, и обновить/заменить только набор свойств?,... или некоторые другой умный обходной путь?
Вот пример ввода/вывода того, что я ищу, и он должен быть общим, поскольку объект передается в десериализацию метод имеет тип ). У меня есть две строки JSON, которые нужно проанализировать в объект, где для первой установлены некоторые свойства по умолчанию, а для второй - некоторые, например
Примечание: значение свойства может быть любым тип, отличный от строки.
Строка Json 1:
Код: Выделить всё
{
"Title": "Startpage",
"Link": "/index"
}
Код: Выделить всё
{
"Head": "Latest news",
"Link": "/news"
}
Код: Выделить всё
{
"Title": "Startpage",
"Head": "Latest news",
"Link": "/news"
}
Подробнее здесь: https://stackoverflow.com/questions/568 ... -text-json
Мобильная версия