当前位置: 首页 > 面试题库 >

Json.Net PopulateObject追加列表而不是设置值

长孙永思
2023-03-14
问题内容

我正在使用Json.Net for .Net 4.5,并且在以下对象上使用填充对象时,它会使用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)


 类似资料:
  • 问题内容: 我使用了下面的jQuery 示例 ,它的工作原理就像一个魅力。但是,它会附加结果。我需要更改什么以替换结果而不是附加结果? 问题答案: 您可以在追加之前清空元素 或使用方法

  • 问题内容: 我正在编写一个包含10个存储桶列表的简单哈希表。使用内置函数计算索引,然后对表大小取模。但是,当我尝试将对象附加到该索引的存储桶列表时,它会附加到每个存储桶列表。我尝试用不同的方式定义add_HT,但我一直得到相同的结果。我究竟做错了什么? 问题答案: 使指向 同一列表 的指针数量增加。这里不是问题。您需要定义为。

  • 我有一个方法应该用新内容覆盖当前文件,但是FileWriter()只是附加新内容,而不是覆盖旧内容。 这是我的FileWriter的设置方式 这是保存方法 当我运行此方法时会出现问题,它没有覆盖文件,而是将新内容附加到文件中。 我想要的: 发生了什么:

  • 我试图访问MyModelClass上的getter方法,但我的代码返回

  • 是否有一种方便的方法(Python、Web UI或CLI)可以将新列插入现有BigQuery表(已经有100列左右)并相应地更新架构? 假设我想在第 49 列之后插入它。如果我通过查询执行此操作,我将不得不键入每个列名称,不是吗? 更新:建议的答案没有清楚地说明这如何适用于BigQuery。此外,文件似乎不包括 语法。测试确认 标识符不适用于 BigQuery。

  • 我正在尝试添加选项到一个动态选择输入,依赖于在另一个选择下拉菜单中选择的值。 我已经设法在选择父级中的值时填充数据对象。所有的my触发器也会被执行,子select被禁用,它应该包含数据对象中的所有值,但是它没有填充任何选项。 JS(Coffeescript)代码段: 最后一节特别重要,因为这是JSON数据对象应转换为新选项的地方。下面是在一种情况下响应的对象(根据Firebug): 在本例中,儿童