当前位置 博文首页 > unity工具人的博客:c# Json文件操作(用unity自带的JsonUtility

    unity工具人的博客:c# Json文件操作(用unity自带的JsonUtility

    作者:[db:作者] 时间:2021-07-20 09:33

    用unity自带的JsonUtility来进行序列化

    一、检查路径中的Json文件是否存在,不存在则新建

    
      /// <summary>
        /// // 判断是否已有相同文件,没有就新建
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public bool CheckJsonPath(string path)
        {
            if (!File.Exists(path))  // 判断是否已有相同文件 
            {
               
                CreateJson(path);
                
                print("未找到文件,已创建新的文件:"+path);
                return false;
            }
            else
            {
                print("文件存在");
                return true;
            }
        }
        /// <summary>
        /// 新建Json
        /// </summary>
        /// <param name="strPath">新建的位置</param>
        /// <param name="user">对象</param>
        public static void CreateJson(string strPath)
        {
            InfoList infoList = new InfoList();
            //序列化
            string json = JsonUtility.ToJson(infoList);
            StreamWriter sw = new StreamWriter(strPath);
            sw.Write(json);
            sw.Close();
        }
    

    上边代码中的数据类

    [System.Serializable]
    public class InfoList
    {
        public List<AutoInfo> autoInfos = new List<AutoInfo>();
    }
    

    二、读取json文件中的文本并反序列化

        public string ReadJson(string FullPath)
        {
            //string FilePath = Application.streamingAssetsPath + "/JsonPerson.json";
            string JsonString = File.ReadAllText(FullPath);
            //反序列化
            JsonUtility.FromJson<InfoList>(JsonString);
            return JsonString;
        }
    

    json文件,相对于xml和txt来讲更小,存取更快,更方便。
    以上是使用unity自带的JsonUtility来进行序列化的示例。

    我们也可以尝试使用其它的工具进行序列化和反序列化操作
    例如:
    LitJson的使用
    Json序列化工具 Newtonsoft.Json的使用

    cs
    下一篇:没有了