Подтвердить что ты не робот

Json.Net PopulateObject Добавлять список, а не устанавливать значение

Я использую Json.Net для .Net 4.5 и при использовании заполняемого объекта на следующем объекте он увеличивает List с содержимым json, а не устанавливает его значение.

Json.Net

JsonConvert.PopulateObject(string, object)

Класс

class MySettingSubClass
{
    public List<string> MyStringList1 = new List<string>(){"one", "two", "three"}
}

class MySetting
{
    public string MyString = "MyString";
    public int MyInt = 5;
    public MySettingSubClass MyClassObject = new MySettingSubClass();
    public List<string> MyStringList2 = new List<string>{"one", "two", "three"};
}

Когда они изначально загружаются, все правильно, однако перезагрузка из JSON и MyStringLists дублируется "one", "two", "three", "one", "two", "three"

4b9b3361

Ответ 1

Вы должны сказать Json.Net о замене массивов, например:

var serializerSettings = new JsonSerializerSettings {ObjectCreationHandling = ObjectCreationHandling.Replace};


JsonConvert.PopulateObject(jasonString, myObject, serializerSettings)