美文网首页
2018年8月30日-Unity读取json文件

2018年8月30日-Unity读取json文件

作者: SmallFlydream | 来源:发表于2018-05-14 16:15 被阅读0次

1.读取工程文件里的json文件(最简单的开始)

  • 先我们先来创建一个json格式的文件在本地工程文件中Asset下(这里我找到了菜鸟教程的一个json文件)
//这是一个名为StudyData.json的json文件放在Asset下
{
  "sites": {
    "site": [
      {
        "id": "1",
        "name": "菜鸟教程",
        "url": "www.runoob.com"
      },
      {
        "id": "2",
        "name": "菜鸟工具",
        "url": "c.runoob.com"
      },
      {
        "id": "3",
        "name": "Google",
        "url": "www.google.com"
      }
    ]
  }
}
  • 新建一个对应json格式的类文件(注意格式必须对应json文件)

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class JsonData {

    public Sites sites;
}
[Serializable]
public class Sites
{
    public List<Site> site;
}
[Serializable]
public class Site
{
    public string id;
    public string name;
    public string url;
  
}
  • 新建一个脚本读取这个json,利用Unity中WWW通过路径得到文件中内容,利用Unity自带JsonUtility解析文件中string内容
 // Use this for initialization
    void Start()
    {
        StartCoroutine("ReadJson");
    }

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

    }
    IEnumerator ReadJson()
    {
        WWW www = new WWW(@"file://" + Application.dataPath + @"/StudyData.json");

        yield return www;
        if (www.isDone)
        {
            if (www.error != null)
            {
                Debug.Log(www.error);
                yield return null;
            }
            else
            {
                Debug.Log(www.text);
                string json = www.text.ToString();
                Debug.Log(json);
                JsonData data =  JsonUtility.FromJson<JsonData>(json);
                foreach (Site item in data.sites.site)
                {
                    Debug.Log("id:"+item.id+"  名字:"+item.name+"  url"+item.url);

                }
               
            }
        }
    }

相关文章

网友评论

      本文标题:2018年8月30日-Unity读取json文件

      本文链接:https://www.haomeiwen.com/subject/rcljdftx.html