欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

unity xlsx转json 使用litjson解析

程序员文章站 2022-03-05 21:22:50
...

unity xlsx转json 使用litjson解析

本文仅做实现 暂无讲解 如有错误 还望指出

配置Json文件

编辑.xlsx文件
unity xlsx转json 使用litjson解析

.xlsx文件另存为.csv格式
unity xlsx转json 使用litjson解析
以记事本的打开方式打开.csv文件
unity xlsx转json 使用litjson解析

将其转为json格式
unity xlsx转json 使用litjson解析
第一行删除 分隔符使用英文逗号 “,” 点击转换得到json文件
unity xlsx转json 使用litjson解析
将json文件修改为

unity xlsx转json 使用litjson解析
复制进行校验
提示错误
unity xlsx转json 使用litjson解析
删除最后一个逗号 再次校验
校验成功
unity xlsx转json 使用litjson解析

LitJson解析

新建Unity项目
unity xlsx转json 使用litjson解析
项目目录
unity xlsx转json 使用litjson解析
打开项目工程文件夹
Resources
进入Resources文件 新建ItemInfoJson.txt文本
将校验成功的json复制到文本中
文本另存为修改编码格式为UTF-8(不然中文乱码)
ItemInfoJson.txt文本修改后缀为ItemInfoJson.json
Plugins
进入Plugins文件夹 将litjosn.dll拖入
Scripts
新建C#脚本 JsonTest

修改后项目目录
unity xlsx转json 使用litjson解析

编辑JsonTest脚本
新建ItemInfo类 根据配置表的字段来定义字段
unity xlsx转json 使用litjson解析
新建ItemInfoList类
unity xlsx转json 使用litjson解析
编辑JsonTest类
定义itemInfoDict字典存储物品 通过id获取对应物品信息
创建ParseItemInfoJson方法解析ItemInfoJson
unity xlsx转json 使用litjson解析

完整代码:

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脚本
unity xlsx转json 使用litjson解析
启动项目
信息打印正确
unity xlsx转json 使用litjson解析

注意点:

json文件最后一组数据不需要以","结尾
ItemInfo类所拥有的字段需与json文件的键对应(大小写需一致)
ItemInfoList类中定义的ItemInfo列表变量名需与json文件中数组名对应(好像是数组名…- -)
unity xlsx转json 使用litjson解析

相关标签: json unity