CSV解析——简单利用反射+特性序列化CSV(一)

这篇博客介绍了如何结合Unity和C#,使用CSV Serialize插件进行CSV数据的反序列化和序列化操作。通过反射和特性,实现了对特定字段的序列化控制。博客中详细讲解了反序列化、序列化过程,并讨论了如何通过特性自定义字段名称。同时,提出了在反序列化时字段匹配及动态创建类的挑战,并计划进一步研究解决方案。
摘要由CSDN通过智能技术生成

突然想结合Odin做一个解析CSV然后输出的工具,记录一下自己的想法,代码中的不足之处还希望大家指出
有关解析CSV的内容已经有很多了,这里我使用了Assets Store中的一个免费插件CSV Serialize,这里是插件的下载地址,这个插件比较简单,源码也是公开的,且只提供了反序列化CSV的函数。(有关csv这种格式的内容大家可以自行查找)

本文需要大家了解有关C#反射、特性、Linq方面的内容,不了解的大家可以看一下菜鸟教程-C#

1. 反序列化

我用Excel做了一张表格,然后把它另存为csv格式,采用了Odin的特性来获取文件夹的地址,至于反序列化的内容,有pdf文档,这里就不赘述了

[System.Serializable]
public class CSVClass : ScriptableObject
{
   
    public class CSVSample
    {
   
        public int a;
        public int b;
        public string c;
        public int d;
        public int e;
        public int f;
        public int g;
        public string[] h;
    }
    public CSVSample[] samples;
}

public class TestCSV : MonoBehaviour
{
   
    [FilePath(RequireExistingPath = true)]
    public string filePath;

    void Start()
    {
   
        TextAsset data = AssetDatabase.LoadAssetAtPath<TextAsset>(filePath);
        string assetfile = filePath.Replace(".csv", ".asset");
        CSVClass cc = new CSVClass();
        AssetDatabase.CreateAsset(cc, assetfile);
        cc.samples = CSVSerializer.Deserialize<CSVClass.CSVSample>(data.text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值