Unity/C#中如何将JSON文件字符串显示到TMP_Text组件中?
Unity加载JSON数据到TMP_Text的实现方法
你已经完成了JSON的解析部分,只需要在解析后把数据赋值给TMP_Text组件即可,以下是修改后的完整代码,重点添加了数据赋值和空值判断(避免新手常遇到的空引用错误):
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class jsonReader : MonoBehaviour { public TextAsset txtjson; public TMP_Text desc; // 场景中的文本框对象 [System.Serializable] public class Question { public string questiondesc; public string answer1, answer2, answer3, answer4; public int correctans; } [System.Serializable] public class QuestionList { public Question[] questions; } public QuestionList myQuestionList = new QuestionList(); void Start() { // 解析JSON数据 myQuestionList = JsonUtility.FromJson<QuestionList>(txtjson.text); // 检查数据有效性,防止空引用报错 if (myQuestionList != null && myQuestionList.questions != null && myQuestionList.questions.Length > 0) { // 将第一个问题的描述显示到TMP_Text中 desc.text = myQuestionList.questions[0].questiondesc; } else { desc.text = "未加载到问题数据"; } } }
关键注意点:
- 确保场景中的TMP_Text组件已经拖到脚本的
desc字段上,否则会出现空引用异常 - JSON文件的字段名要和脚本中类的字段名大小写完全一致(JsonUtility对大小写敏感)
- 把JSON文件作为TextAsset拖到脚本的
txtjson字段上,或者放在Resources文件夹中通过代码加载
内容的提问来源于stack exchange,提问作者TheRNB
相关产品推荐
相关产品推荐

