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);
}
}
}
}