C# List<T> 泛型方法根据字段名取值及Object的取值

   		/// <summary>
        /// 泛型List<T>取值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_ListTGetValue_Click(object sender, EventArgs e)
        {
   
            List<ObjectClass> list = new List<ObjectClass>();
            list.Add(new 
### 解析 JSON 并提取值 在 Unity 中解析 JSON 数据并从中提取特定字段的值可以采用多种方式实现。下面展示一种基于 `LitJson` 库的方法来处理这个问题。 #### 方法一:通过 Resources 文件夹加载本地 JSON 资源文件 当 JSON 文件被放置于项目的 `Resources` 文件夹下时,可以通过如下代码片段完成数据读取与解析: ```csharp using UnityEngine; using LitJson; void Start() { // 加载位于 Resources 文件夹下的名为 "data" 的文本资源 string jsonString = Resources.Load<TextAsset>("data").text; // 将 JSON 字符串映射为 JsonData 对象以便访问其内部结构 JsonData jsonData = JsonMapper.ToObject(jsonString); // 假设 JSON 是一个数组,则遍历每一个条目并将它们转换为目标类实例 List<datetest> dataList = new List<datetest>(); foreach (JsonData item in jsonData) { var entry = new datatest(); entry.id = item["id"].ToString(); // 提取 id 字段 entry.Chinese = item["Chinese"].ToString();// 提取 Chinese 字段 entry.English = item["English"].ToString();// 提取 English 字段 dataList.Add(entry); } // 输出每一条记录的信息用于验证正确性 foreach(var record in dataList){ Debug.Log(record.toprint()); } } ``` 此部分展示了如何利用 `Resources.Load()` 函数加载存储在项目中的静态资源,并将其内容作为字符串传递给 `JsonMapper.ToObject()` 进行反序列化操作[^1]。 #### 方法二:直接从指定路径读取 JSON 文件 对于不在 `Resources` 下的其他位置保存的 JSON 文件,可以直接使用 .NET Framework 提供的标准 IO 类库来进行读写操作。这里给出一段示范性的代码说明这一过程: ```csharp using UnityEngine; using LitJson; using System.IO; public class TaskManager : MonoBehaviour { void Start(){ // 构建完整的文件路径指向 StreamingAssets 或者任意自定义目录内的目标 JSON 文件 string filePath = Path.Combine(Application.streamingAssetsPath,"example.json"); // 创建 StreamReader 实例打开该文件准备读取全部内容 using(StreamReader reader=new StreamReader(filePath)){ string fileContent=reader.ReadToEnd(); // 反序列化 JSON 文本至 C# 定义的数据模中去 ExampleClass parsedData = JsonMapper.ToObject<ExampleClass>(fileContent); // 接下来可以根据需求进一步处理这些已解析出来的属性... } } } ``` 上述例子中提到的是从 `StreamingAssets` 文件夹内读取 JSON 文件的方式之一[^2]。注意这里的 `Application.streamingAssetsPath` 返回的是平台相关的实际物理路径,在不同平台上可能有所区别;因此建议开发者测试确认具体行为后再部署应用。 #### 关键点总结 - **选择合适的加载机制**:依据 JSON 文件的位置决定是用 `Resources.Load()` 还是标准 IO 流程。 - **运用参数简化类转换**:借助 `<T>` 语法可以让编译器自动推断出期望的结果类,减少手动 cast 操作带来的风险。 - **考虑异常情况**:始终要考虑到所请求的资源不存在的可能性,并合理设计错误恢复逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值