我有一个将集合初始化为默认状态的类。当我从一些保存的 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;
}
Run Code Online (Sandbox Code Playgroud)
是的。将设置ObjectCreationHandling设为Replace。默认为Auto.
var settings = new JsonSerializerSettings();
settings.ObjectCreationHandling = ObjectCreationHandling.Replace;
var probabiltyMatrix = JsonConvert.DeserializeObject<ProbabiltyMatrix>(probMatrix, settings);
Run Code Online (Sandbox Code Playgroud)
小提琴: https: //dotnetfiddle.net/aBZiim
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |