とぐちブログ

VRの研究,作品制作をしています.

UnityでJSONをファイルとして書き出す/読み込むメモ

UnityでJSONを書き出し/読み込みする関数を作ったのでメモします。

///<summary>
///dataからjsonを作成してpathに書き出す
///</summary>
public static void WriteJson<T>(string path, T data)
{
    if (Directory.Exists(Path.GetDirectoryName(path)))
    {
        string json = JsonUtility.ToJson(data);

        BinaryFormatter bf = new BinaryFormatter();
        FileStream file = File.Create(path);
        bf.Serialize(file, json);
        file.Close();

        Debug.Log("writed");
    }
    else
    {
        Directory.CreateDirectory(Path.GetDirectoryName(path));
        WriteJson<T>(path, data);
    }

}

///<summary>
///pathに保存されているjsonを読み込みdataに格納
///</summary>
public static void ReadJson<T>(string path, out T data)
{
    BinaryFormatter bf = new BinaryFormatter();
    FileStream file = File.Open(path, FileMode.Open);

    string json = (string)bf.Deserialize(file);
    file.Close();
    data = JsonUtility.FromJson<T>(json);
}