2013-11-28 5 views
13

私はJson.Net for .NET 4.5を使用しています。次のオブジェクトでPopulateオブジェクトを使用すると、その値を設定するのではなくjsonの内容でListをインクリメントします。Json.Net PopulateObject値を設定するのではなく、リストを追加する

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"}; 
} 

彼らは当初、しかし、あなたは両方のMyStringListsが"one", "two", "three", "one", "two", "three"

答えて

22

を重複しているJSONからすべきリロード、すべてが正しいと、ロードJson.Netにtのような配列を置き換えるように指示する彼:

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


JsonConvert.PopulateObject(jasonString, myObject, serializerSettings) 
関連する問題