using Newtonsoft.Json; using UnityEngine; using System.IO; using System.Collections.Generic; public class JsonReadBase : Base { /// /// 通用的JSON加载和解析方法 /// /// 目标数据类型 /// JSON文件的TextAsset /// 反序列化后的数据列表 public List LoadJson(TextAsset jsonFile) { if (jsonFile == null) { Debug.LogError("JSON文件为空。请确保已正确分配。"); return null; } try { string jsonText = jsonFile.text.Trim(); // 确保JSON是数组格式 if (!jsonText.StartsWith("[")) { Debug.LogError("JSON格式错误:预期为数组。"); return null; } // 反序列化为列表 List dataList = JsonConvert.DeserializeObject>(jsonText); Debug.Log($"成功从JSON数组中加载了 {dataList.Count} 个 {typeof(T).Name} 项目。"); return dataList; } catch (JsonException ex) { Debug.LogError($"JSON反序列化错误: {ex.Message}"); return null; } } /// /// 通用的显示数据方法 /// /// 数据类型 /// 数据列表 /// 数据类型名称,用于日志输出 public void DisplayData(List dataList) { if (dataList == null || dataList.Count == 0) { Debug.LogWarning($"没有数据可显示。"); return; } foreach (var item in dataList) { string jsonString = JsonConvert.SerializeObject(item, Formatting.Indented); Debug.Log($" {jsonString}"); } } }