List转json字符,再转存到本地;从本地读取json文件,再转为List。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Unity.VisualScripting.FullSerializer;
using UnityEditor;
using UnityEngine;
using Debug = UnityEngine.Debug;

public class Test : MonoBehaviour
{
    #region List转json字符,再转存到本地;从本地读取json文件,再转为List。
    void ListToFile()
    {
        List<MyData> myList = new List<MyData>
        {
            new MyData { id = 1, name = "11111" },
            new MyData { id = 2, name = "22222" }
        };

        string jsonString = JsonUtility.ToJson(new MyDataList("哈哈", myList.ToArray())); // 注意:需要先转换为数组

        string path = Path.Combine(Application.dataPath, "myList.json");
        Debug.Log(path);
        File.WriteAllText(path, jsonString);
    }

    void FileToList()
    {
        string path = Path.Combine(Application.dataPath, "myList.json");
        string jsonString = File.ReadAllText(path);

        MyDataList myDataList = new MyDataList();
        myDataList = JsonUtility.FromJson<MyDataList>(jsonString);

        List<MyData> myList = myDataList.myDatas.ToList();
        foreach (var item in myList)
        {
            Debug.Log(item.id + "  " + item.name);
        }
    }
    #endregion

}
[System.Serializable]
 public class MyData
{
    public int id;
    public string name;
}
[System.Serializable]
public class MyDataList
{
    public string myName;
    public MyData[] myDatas;
    public MyDataList(string name, MyData[] datas)
    {
        myName = name;
        myDatas = datas;
    }
    public MyDataList()
    {
        
    }
}

 

posted @ 2026-04-23 09:17  朋丶Peng  阅读(14)  评论(0)    收藏  举报