Json.Net PopulateObject追加列表,而不是设定值 [英] Json.Net PopulateObject Appending list rather than setting value

查看:306
本文介绍了Json.Net PopulateObject追加列表,而不是设定值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Json.Net对于.NET 4.5,当使用填充以下对象对象是递增的列表的使用json的内容,而不是设置它的值。

I am using Json.Net for .Net 4.5 and when using populate object on the following object it increments the List's with the content of the json rather than setting its value.

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被复制一,二,三,一,二,三

When they initially load, all is correct, however reloading from JSON both MyStringLists are duplicated "one", "two", "three", "one", "two", "three"

推荐答案

您应该告诉Json.Net更换阵列,像这样的:

You should tell Json.Net to replace the arrays, like this:

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


JsonConvert.PopulateObject(jasonString, myObject, serializerSettings)

这篇关于Json.Net PopulateObject追加列表,而不是设定值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆