JSON.NET集合以默认构造函数初始化,未从避难所JSON覆盖



我有一个将集合初始化为默认状态的类。当我从某些保存的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。默认值为Auto

var settings = new JsonSerializerSettings();
settings.ObjectCreationHandling = ObjectCreationHandling.Replace;
var probabiltyMatrix = JsonConvert.DeserializeObject<ProbabiltyMatrix>(probMatrix, settings);

小提琴:https://dotnetfiddle.net/abziim

相关内容

  • 没有找到相关文章

最新更新