gpt4 book ai didi

c# - JSON.NET 为什么它添加到列表而不是覆盖?

转载 作者:行者123 更新时间:2023-11-30 13:36:51 27 4
gpt4 key购买 nike

public class MyClass {
public List<int> myList = new List<int> { 1337 };
public MyClass() {}
}

var myClass = JsonConvert.DeserializeObject<MyClass>("{myList:[1,2,3]}");
Console.WriteLine(string.Join(",", myClass.myList.ToArray())); //1337,1,2,3

为什么显示 1337,1,2,3 而不是 1,2,3?有没有一种方法/设置可以使 JSON.NET 覆盖 List 而不是向其添加元素?

我需要一个不修改构造函数的解决方案。

最佳答案

如果您不想要这种行为,您可以通过传入一个 JSONSerializerSettings 对象来更改它,该对象指定您不想重用实例成员中的现有对象:

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

var myInstance = JsonConvert.DeserializeObject<MyClass>("{myList:[1,2,3]}", settings);

关于c# - JSON.NET 为什么它添加到列表而不是覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com