Unity 批量读取文件夹下的所有json文件
时间: 2023-12-15 21:05:51 浏览: 90
你可以使用 `System.IO` 命名空间中的 `Directory.GetFiles()` 函数来获取指定目录下的所有文件,然后使用 `JsonUtility.FromJson()` 函数将 JSON 文件转换为对象。以下是一个示例代码:
```csharp
using System.IO;
using UnityEngine;
public class JsonReader : MonoBehaviour
{
public string folderPath;
private void Start()
{
// 获取指定目录下的所有文件
string[] allFiles = Directory.GetFiles(folderPath, "*.json", SearchOption.AllDirectories);
foreach (string filePath in allFiles)
{
// 读取 JSON 文件,并将其转换为对象
string json = File.ReadAllText(filePath);
MyObject myObject = JsonUtility.FromJson<MyObject>(json);
// 在控制台中输出对象的属性
Debug.Log("File: " + Path.GetFileName(filePath));
Debug.Log("Property 1: " + myObject.property1);
Debug.Log("Property 2: " + myObject.property2);
}
}
}
[System.Serializable]
public class MyObject
{
public int property1;
public string property2;
}
```
上述代码中,`Directory.GetFiles()` 函数返回一个字符串数组,其中包含指定目录下的所有文件的完整路径。我们使用 `foreach` 循环遍历数组中的每个文件路径,并读取其内容。然后,我们使用 `JsonUtility.FromJson()` 函数将 JSON 字符串转换为 `MyObject` 类型的对象。最后,我们在控制台中输出对象的属性。
请注意,上述代码假设 JSON 文件的根层次结构是一个对象,且该对象可以与 `MyObject` 类型相匹配。如果你需要读取的 JSON 文件的根层次结构与 `MyObject` 类型不匹配,你需要使用其他方式来解析 JSON 文件。
阅读全文