You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:55:30