Unity自带的转Json工具
1、Excel设计好表格数据
2、使用Excel转Json工具获得Json语法 https://www.bejson.com/json/col2json/
3、修改Json语句,前面加上头节点,在线Json解析检测 https://www.json.cn/
4、保存Json文件到指定路径【保存编码为UTF-8】
5、加载出指定路径的Json文件
6、定义好相应的数据结构用以保存数据,结构需要[System.Serializable]
7、使用JsonUtility.FromJson<T>(json字符串)
8、具体实现:
C#
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class BagController : UIBasePanel {
//保存所有赛车信息的字典
private Dictionary<int, Car> carDict = new Dictionary<int, Car>();
void Start () {
//从指定路径加载json文件,返回json的字符串
string json=ResController.GetInstance().LoadAsset<TextAsset>("Json/car").text;
//使用Unity自带的转json方法
CarInfo carsInfo = JsonUtility.FromJson<CarInfo>(json);
//将所有信息保存进字典
for (int i = 0; i < carsInfo.carInfo.Count; i++)
{
carDict.Add(carsInfo.carInfo[i].id,carsInfo.carInfo[i]);
}
//打印测试
Debug.Log(GetCarInfo(5).name);
}
/// <summary>
/// 获取 赛车表的 赛车信息
/// </summary>
/// <param name="id">赛车id</param>
/// <returns></returns>
public Car GetCarInfo(int id)
{
if (carDict.ContainsKey(id))
return carDict[id];
return null;
}
}
[System.Serializable]
public class CarInfo
{
public List<Car> carInfo;
}
[System.Serializable]
public class Car
{
public int id;
public string name;
public int type;
public string desc;
}
9、效果:
评论