gpt4 book ai didi

c# - 在默认构造函数中初始化的 JSON.Net 集合未被反序列化的 JSON 覆盖

转载 作者:太空狗 更新时间:2023-10-30 01:31:32 24 4
gpt4 key购买 nike

我有一个将集合初始化为默认状态的类。当我从某个已保存的 JSON 加载对象时,它会附加值而不是覆盖集合。有没有办法让 JSON.Net 在反序列化时替换集合而不是附加值?

void Main() {
string probMatrix = "{\"Threshold\":0.0276,\"Matrix\":[[-8.9,23.1,4.5],[7.9,2.4,4.5],[9.4,1.4,6.3]]}";
var probabiltyMatrix = JsonConvert.DeserializeObject<ProbabiltyMatrix>(probMatrix);
probabiltyMatrix.Dump();
}

// Define other methods and classes here
public class ProbabiltyMatrix {

public ProbabiltyMatrix() {
// Initialize the probabilty matrix
Matrix = new List<double[]>();
var matrixSize = 3;
for (var i = 0; i < matrixSize; i++) {
var probArray = new double[matrixSize];
for (var j = 0; j < matrixSize; j++) {
probArray[j] = 0.0;
}
Matrix.Add(probArray);
}
}

public double Threshold;
public List<double[]> Matrix;
}

最佳答案

是的。设置 ObjectCreationHandling设置为 Replace .默认为自动

var settings = new JsonSerializerSettings();
settings.ObjectCreationHandling = ObjectCreationHandling.Replace;

var probabiltyMatrix = JsonConvert.DeserializeObject<ProbabiltyMatrix>(probMatrix, settings);

fiddle :https://dotnetfiddle.net/aBZiim

关于c# - 在默认构造函数中初始化的 JSON.Net 集合未被反序列化的 JSON 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40949305/

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