unity xlsx转json 使用litjson解析
程序员文章站
2022-03-05 21:22:50
...
unity xlsx转json 使用litjson解析
本文仅做实现 暂无讲解 如有错误 还望指出
配置Json文件
编辑.xlsx文件
.xlsx文件另存为.csv格式
以记事本的打开方式打开.csv文件
将其转为json格式
第一行删除 分隔符使用英文逗号 “,” 点击转换得到json文件
将json文件修改为
复制进行校验
提示错误
删除最后一个逗号 再次校验
校验成功
LitJson解析
新建Unity项目
项目目录
打开项目工程文件夹
Resources
进入Resources文件 新建ItemInfoJson.txt文本
将校验成功的json复制到文本中
文本另存为修改编码格式为UTF-8(不然中文乱码)
ItemInfoJson.txt文本修改后缀为ItemInfoJson.json
Plugins
进入Plugins文件夹 将litjosn.dll拖入
Scripts
新建C#脚本 JsonTest
修改后项目目录
编辑JsonTest脚本
新建ItemInfo类 根据配置表的字段来定义字段
新建ItemInfoList类
编辑JsonTest类
定义itemInfoDict字典存储物品 通过id获取对应物品信息
创建ParseItemInfoJson方法解析ItemInfoJson
完整代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System;
public class JsonTest : MonoBehaviour
{
private Dictionary<int, ItemInfo> itemInfoDict;
private void Awake()
{
ParseItemInfoJson();
}
private void ParseItemInfoJson()
{
itemInfoDict = new Dictionary<int, ItemInfo>();
TextAsset textItemInfo = Resources.Load<TextAsset>("ItemInfoJson");
ItemInfoList itemInfoList = JsonMapper.ToObject<ItemInfoList>(textItemInfo.text);
foreach (ItemInfo info in itemInfoList.itemInfoList)
{
itemInfoDict.Add(info.id, info);
Debug.Log("info Id:" + info.id + " name:" + info.name + " number:" + info.number + " money:" + info.money + " path:" + info.path + " introduction:" + info.introduction);
}
}
}
[Serializable]
public class ItemInfo
{
public int id;
public string name;
public int number;
public int money;
public string path;
public string introduction;
}
[Serializable]
public class ItemInfoList
{
public List<ItemInfo> itemInfoList;
}
测试代码:
场景中创建一个空物体GameObject 挂载JsonText脚本
启动项目
信息打印正确
注意点:
json文件最后一组数据不需要以","结尾
ItemInfo类所拥有的字段需与json文件的键对应(大小写需一致)
ItemInfoList类中定义的ItemInfo列表变量名需与json文件中数组名对应(好像是数组名…- -)
下一篇: 浅谈Android的日志工具