运用Excel2Json2Object插件将xml表格转为Object导入脚本json
下载地址
https://pan.baidu.com/s/1m86B7Gk6Jt46rRfyAmrHng 提取码: ikvcc#
插件不支持 float 类型,浮点数请使用 double 类型api
导入Excel2Object.unitypackage数组
ID | Name | Hp | Desc |
---|---|---|---|
1 | a | 10 | da |
2 | b | 20 | db |
3 | c | 30 | dc |
4 | d | 40 | dd |
后缀名必须是“.xlsx”app
表格第一行为变量名测试
其后每一行都是一组数据插件
把表格导入Unityexcel
这里建立的表格文件名为 HeroDataxml.xmlcode
public class HeroData { public int ID; public string Name; public int hp; public string Des; }//变量名必须和表格第一行一致
转换生成同名Jason文件xml
例如咱们建立一个控制对象Hero1的脚本HeroDatactl
将HeroDatactl挂载到游戏物体Hero1上
而后在HeroDatactl中声明一个变量
public TextAsset json;//声明一个存放.txt的变量
在unity中指定他为转换好的json文件(把咱们转换出的 Json 文件,直接拖到这个变量中)
public class HeroData : MonoBehaviour { public TextAsset json;//声明一个存放.txt文件的变量 // Start is called before the first frame update void Start() { //将一个jason文件转换为一个类型对象 //(一个HeroData类的对象,就是一条数据) List<HeroData> datas = JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text); //返回值为表格中的数据 //输出测试 Debug.Log(datas[0].ID); Debug.Log(datas[2].Name); } }
//将一个jason文件转换为一个类型对象 JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text); //<>要把表格中的数据,转换的什么类型的对象
JsonToObject.JsonToObject_ByJsonFile()
用于把一个Json文件转换为(Object)
参数:Json 文本文件的地址(须要加上文件名的后缀名)
/// 把一个Json文本文件,转成一个对象(Object) /// <typeparam name="T">对象的类型</typeparam> /// <param name="filePath">Json文本文件的地址(须要加上文件名和后缀名)</param> public static List<T> JsonToObject_ByJsonFile<T>(string filePath) { /*直接解析成对象*/ //读取Json文本中的内容 string json = File.ReadAllText(filePath); //解析Json文本中的内容 -(解析成数组或者List列表均可以) List<T> datas = JsonToObject_ByJsonContent<T>(json); return datas; }
返回值:泛型类型的列表
JsonToObject.JsonToObject_ByJsonContent()
用于把一个Json格式的文本转换为(Object)
参数:Json 文本文件中的内容
/// 把一个Json格式的文本,转成一个对象(Object) /// <typeparam name="T">对象的类型</typeparam> /// <param name="filePath">Json文本中的内容</param> public static List<T> JsonToObject_ByJsonContent<T>(string conntent) { /*直接解析成对象*/ //解析Json文本中的内容 -(解析成数组或者List列表均可以) T[] datas = JsonMapper.ToObject<T[]>(conntent); //把数组封装成List列表 List<T> dataList = new List<T>(); for (int i = 0; i < datas.Length; i++) { dataList.Add(datas[i]); } return dataList; }
返回值:泛型类型的列表