Unity3D中读取json文件

发表于2018-09-03
评论0 4.7k浏览
在Unity的开发中,经常会用到Json来存储数据文件,而本篇文章要和大家分享下读取json文件的方法。

需要大家先下载jsondLL:

代码如下:
{
  "height": 20,
  "sites": [
    {
      "name": "testname",
      "age": 10,
      "data": [ 20, 12, 30, 55, 44 ]
    },
    {
      "name": "google",
      "age": 18,
      "data": [ 20, 12, 30, 55, 44 ]
    },
    {
      "name": "baidu",
      "age": 30,
      "data": [ 20, 12, 30, 55, 44 ]
    }
  ]
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
public class ReadJson : MonoBehaviour {
    // Use this for initialization
    void Start () {
        TextAsset text = Resources.Load<TextAsset>("jsonTest");
        tmxClass jd = JsonMapper.ToObject<tmxClass>(text.text);
        for (int i = 0; i < jd.sites.Count; i++)
        {
            Debug.Log(jd.sites[i].name + "/" + jd.sites[i].data.Count);
        }
        #region 测试1
        /*
        TextAsset text = Resources.Load<TextAsset>("jsonTest");
        Hashtable jd = JsonMapper.ToObject<Hashtable>(text.text);
        JsonData jd1 = jd["sites"] as JsonData;
        for (int i = 0; i < jd1.Count; i++)
        {
            Debug.Log(jd1[i]["name"]);
        }
        Debug.Log("ht = " + jd["sites"].ToString());
        Debug.Log("ht = " + jd1.Count);
        Debug.Log("text :" + text.text);
        //string json = "{\"test\":\"www.test\",\"test1\":\"www.test1\"}";
        //Hashtable jd = JsonMapper.ToObject<Hashtable>(json);
        //foreach (string str in jd.Keys)
        //{
        //    Debug.Log("key = " + str + "/value = " + jd[str]);
        //}
        //Debug.Log("jd test = " + jd["test"]);
        */
        #endregion
    }
    public class sites
    {
        public string name;
        public int age;
        public List<int> data;
    }
    public class tmxClass
    {
        public int height;
        public List<sites> sites;
    }
}

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引