Код: Выделить всё
public class ResourceDescriptor
{
public string Title { get; set; }
}
public class ResourceProperties
{
public string Quantity { get; set; }
}
public class Resource
{
public ResourceDescriptor descriptor { get; set; } = new();
public ResourceProperties properties { get; set; } = new();
}
public class Container
{
public Dictionary Resources { get; set; } = new();
}
< /code>
В моем основном методе я сначала десериализую некоторые JSON, которые заполняют свойство дескриптора: < /p>
string json1 = @"
{
""Resources"": {
""1"": {
""descriptor"": {
""Title"": ""Example Title""
}
}
}
}";
Container container = JsonConvert.DeserializeObject(json1);
< /code>
Затем я пытаюсь обновить существующий контейнер с помощью дополнительного JSON, который обеспечивает свойства: < /p>
string json2 = @"
{
""Resources"": {
""1"": {
""properties"": {
""Quantity"": ""100""
}
}
}
}";
JsonConvert.PopulateObject(json2, container);
Код: Выделить всё
"Example Title"
Quantity:
< /code>
и после < /p>
Title:
Quantity: 100
< /code>
Вопросы: < /p>
Почему jsonConvert.PopulateObject перезаписывает существующий объект вместо объединения новых данных JSON с существующими Свойства? Новые свойства от второго JSON? /p>
Я попытался изменить настройки десериализации JSON, включая обработку справочника и нулевую обработку, но это не сработало. < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ry-without