前回はXMLでの保存の方法をお伝えしましたが、今回はJsonでの保存です。
個人的には断然Jsonの方がおすすめです。
理由として、PointやRectなどその型のまま保存することが可能な点です。クラスもそのまま保存できます。読み込みも同様です。Listなどの配列もそのままできます。
public override void LoadJsonData(JsonElement elem)
{
_intVal = elem.GetProperty("intVal ").GetInt32();
_Point = elem.GetProperty("Point").Deserialize<Point>();
_List = elem.GetProperty("List").Deserialize<List<uint>>();
_array.Clear();
var objArray = elem.GetProperty("array").EnumerateArray();
foreach (var obj in objArray)
{
Work wrk = new Work();
wrk.LoadJsonData(obj);
_array.Add(wrk);
}
}
public override void SaveJsonData(ref Dictionary<string, object?> archive)
{
archive["intVal"] = _intVal;
archive["Point"] = _Point;
archive["List"] = _List;
archive["array"] = new List<Dictionary<string, object?>> { };
for (int i = 0; i < _array.Count(); i++)
{
var nextDict = new Dictionary<string, object?> { };
if (archive["array"] is List<Dictionary<string, object?>> wrk)
{
wrk.Add(nextDict);
}
}
}
コメント