在Unity里经常用这个方法读取json数据,做Tips标签展示和选择题都可以用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using LitJson;

/// 
/// 简介内容控制
/// 
public class TipsContentManager : NewSingleton<TipsContentManager>
{
    public TextAsset m_ModelData;//模型数据
    public Text tipsTitleUI;//简介标题UI
    public Text tipsContentUI;//简介内容UI

    private JsonData jsonData;//jsonData

    public int tipsIndex = 0;//简介初始值
    // Start is called before the first frame update
    void Awake()
    {
        
         jsonData = JsonMapper.ToObject(m_ModelData.text);
        //取出respond中的code值,注意是int类型
        int id = (int)jsonData[0]["id"];
        //取出respond中的msg值
        string title = (string)jsonData[1]["title"];
        ShowTipsContent(tipsIndex);
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    /// 
    /// 传入ID 即可改变TipsUI内容
    /// 添加语音播报简介
    /// 
    /// 
    public void ShowTipsContent(int id) {
        tipsTitleUI.text = GetData(id,"title");
        tipsContentUI.text = GetData(id, "content");
        AudioManager.Instance.PlayFromText(tipsTitleUI.text+","+tipsContentUI.text);
    }

    /// 
    /// 传入ID 和属性名 获取对应的值
    /// 
    /// 
    /// 
    public string GetData(int id,string propertyName) {
        string data="";
        for (int i=0;i< jsonData.Count;i++) {
            if ((int)jsonData[i]["id"] == id)
            {
                data= jsonData[i][propertyName].ToString();
                break;
            }
        }
        return data;
    }
}
如标题所说,这个脚本可以方便的生成Tips和选择题。也可以方便的读取json数据
json格式

```csharp
[
	{
		"id":0,
		"type":"原理",
		"title":"产甲烷菌是?",
		"A":"好氧菌",
		"B":"厌氧菌",
		"C":"兼氧性菌",
		"D":"可根据环境条件进行转换",
		"Que":"C"
	},
	{
		"id":1,
		"type":"原理",
		"title":"沼气厌氧发酵产酸细菌的作用是?",
		"A":"为甲烷菌提供养分",
		"B":"为水解细菌提供养分",
		"C":"营造厌氧环境",
		"D":"消除无机物,减少无机物干扰",
		"Que":"A"
	}
	}

脚本里需要引用LitJson.dll文件


你可能感兴趣的:(unity,json)