我将Json.Net用于.Net 4.5,当在以下对象上使用populate对象时,它会用Json的内容来增加List,而不是设置其值。
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"
您应该告诉Json.Net替换数组,如下所示:
var serializerSettings = new JsonSerializerSettings {ObjectCreationHandling = ObjectCreationHandling.Replace};
JsonConvert.PopulateObject(jasonString, myObject, serializerSettings)