unity读取Json文件

unity读取Json文件

最近做项目的时候,因为物品太多,而且每个物品的信息都类似,所以我们没有选择一个一个赋予信息 ,而是选择使用加载Json数据表的方法进行获取信息。在这里,我们通过做一个查询系统来进行演示读取Json数据表。
1.首先,先创建一个项目,新建四个UI组件,输入框,按钮和文字,背景,同时导入Json的引用文件:LitJson
unity读取Json文件_第1张图片
2.新建一个StreamingAssets文件夹
unity读取Json文件_第2张图片
3.新建一个文本文档,开始写数据表,如下格式
unity读取Json文件_第3张图片
4.然后另存为Json文件,设置如下:
unity读取Json文件_第4张图片
5.把新建好的json数据文件拖入刚才的StreamingAssets文件夹里面,为了保证json文件的正确性,打开网页,把里面的数据复制,找一个检测json数据的网站,进行数据检测:
unity读取Json文件_第5张图片
unity读取Json文件_第6张图片
同时,我们为了方便,可以生成C#实体类,待会用得上
unity读取Json文件_第7张图片
6.新建一个脚本,随便挂在一个物体上,这里我挂在摄像机上。脚本代码如下:

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

public class TestDataItem
{
    /// 
    /// 
    /// 
    public string ID { get; set; }
    /// 
    /// 雕塑
    /// 
    public string Type { get; set; }
    /// 
    /// 滕王阁
    /// 
    public string Name { get; set; }
}

public class Root
{
    /// 
    /// 
    /// 
    public List TestData { get; set; }
}
public class JsonText : MonoBehaviour {

    public InputField inputField;//输入框
    public Text contentText;//文本框

    public void GetJsonInfo()//这个方法给按钮注册
    {
        if (inputField.text == "")//输入框为空
        {
            contentText.text = "输入为空";
        }
        else

        {
            StreamReader streamreader = new StreamReader(Application.dataPath + "/StreamingAssets/Test.json");//读取数据,转换成数据流
            JsonReader js = new JsonReader(streamreader);//再转换成json数据
            Root r = JsonMapper.ToObject(js);//读取
            for (int i = 0; i < r.TestData.Count; i++)//遍历获取数据
            {
                if (inputField.text == r.TestData[i].ID)
                {
                    contentText.text = "ID号码:" + r.TestData[i].ID + "  类型:" + r.TestData[i].Type + "  名字:" + r.TestData[i].Name;
                    break;
                }
            }
        }
    }
}

7.这样,把上面那个方法给按钮注册,当我们输入正确的id,就可以进行简单的数据读取了,将复制的实体类也粘贴到自己的脚本里,当然这里你也可以自己写json实体类,也就是两个东西,一个类是具体的单个数组里面的元素,一个是定义一个整体的链表,从我们写的json数据表就可以看出怎么写,格式很重要,错了一个就读取不到,所以一定要注意哟。
unity读取Json文件_第8张图片

你可能感兴趣的:(VR开发,Unity开发,数据读取)