JSONへの保存

前回は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);
            }
        }
    }
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次