unity 写入json文件时判断无此文件则新建
时间: 2024-09-23 10:11:24 浏览: 46
在Unity中,当你需要将数据写入JSON文件并确保文件存在时,可以使用`JsonUtility`类配合`File.WriteAllText()`方法以及条件语句来实现。首先确保有一个辅助函数来检查文件是否存在:
```csharp
using System.IO;
using UnityEngine;
using Newtonsoft.Json;
public static class JsonUtils
{
public static bool FileExists(string filePath)
{
return File.Exists(filePath);
}
public static void SaveDataToJson<T>(string filePath, T data)
{
if (!FileExists(filePath))
{
// 如果文件不存在,创建新文件并写入数据
string json = JsonConvert.SerializeObject(data);
File.WriteAllText(filePath, json);
}
else
{
// 文件已存在,直接写入数据
string existingJson = File.ReadAllText(filePath);
var existingData = JsonConvert.DeserializeObject<T>(existingJson);
UpdateJsonData(existingData, data);
File.WriteAllText(filePath, JsonConvert.SerializeObject(data));
}
}
private static void UpdateJsonData(T oldData, T newData)
{
// 在这里添加对旧数据的更新逻辑,如果不需要更新可以直接删除这行
// ...
}
}
```
在这个示例中,`SaveDataToJson`方法接受一个JSON序列化的对象`data`和文件路径。如果文件不存在,它会创建新的文件并将数据写入;如果文件存在,先读取当前内容,然后更新数据,最后再次写入。
阅读全文