using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
[System.Serializable]
public class MyDataItem
{
public string FirstOrder;
public string TwoOrder;
public string ModelName;
public string ThirdOrder;
public string EnglishName;
public string Annotation;
public bool IsMatch(string name)
{
return ModelName == name;
}
}
[System.Serializable]
public class Data
{
public List items;
public MyDataItem GetItemByName(string name)
{
foreach (MyDataItem item in items)
{
if (item.IsMatch(name))
{
return item;
}
}
return null;
}
}
public class ReadJson : MonoBehaviour
{
void Start()
{
string filePath = Application.streamingAssetsPath + “/data.json”;
if (Application.platform == RuntimePlatform.Android)
{
StartCoroutine(LoadFileAndroid(filePath));
}
else
{
LoadFile(filePath);
}
}
void LoadFile(string filePath)
{
StreamReader reader = new StreamReader(filePath);
string jsonString = reader.ReadToEnd();
reader.Close();
// 解析JSON字符串,读取JSON数据
Data data = JsonUtility.FromJson<Data>(jsonString);
// 遍历数据
foreach (MyDataItem myDataItem in data.items)
{
Debug.Log(myDataItem.ModelName);
Debug.Log(myDataItem.Annotation);
}
}
IEnumerator LoadFileAndroid(string filePath)
{
UnityWebRequest www = UnityWebRequest.Get(filePath);
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.ConnectionError ||
www.result == UnityWebRequest.Result.ProtocolError)
{
Debug.LogError(www.error);
}
else
{
string jsonString = www.downloadHandler.text;
// 解析JSON字符串,读取JSON数据
Data data = JsonUtility.FromJson<Data>(jsonString);
// 遍历数据
foreach (MyDataItem myDataItem in data.items)
{
Debug.Log(myDataItem.ModelName);
print(myDataItem.Annotation);
}
}
}
}