c# Json文件操作(用unity自带的JsonUtility来进行序列化)
用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的使用