Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

空的数组域被默认填入了0 #58

Closed
yanjingzhaisun opened this issue Jul 29, 2020 · 8 comments
Closed

空的数组域被默认填入了0 #58

yanjingzhaisun opened this issue Jul 29, 2020 · 8 comments

Comments

@yanjingzhaisun
Copy link

yanjingzhaisun commented Jul 29, 2020

批注 2020-07-29 105418
批注 2020-07-29 105514
批注 2020-07-29 105355

如果是空的域,默认之前一直以为应该是是空list?

@davyxu
Copy link
Owner

davyxu commented Jul 30, 2020

图看不了, 空白单元格的逻辑是这样的:

  1. 如果是1列的数组, 空白时, 默认输出空白数组
  2. 如果把数组拆成多列, 那么默认值填充数组默认值, 数值的默认值为0

@yanjingzhaisun
Copy link
Author

yanjingzhaisun commented Jul 30, 2020

图看不了, 空白单元格的逻辑是这样的:

  1. 如果是1列的数组, 空白时, 默认输出空白数组
  2. 如果把数组拆成多列, 那么默认值填充数组默认值, 数值的默认值为0

抱歉,我这两个的区别不太明白。不知为何图片无法看到,我描述一下表格。
type.xlsx 中定义了 SkillData 这个类型,该类型中有一个域叫做 SkillBuffEffects,数值类型为 int,采用 | 符号进行分割,应该是你所说的情况1.
SkillData.xlsx 中,SkillBuffEffects 对应的那一行留为空白。
最终产出的 Binary 中,skillData.SkillBuffEffects 变成了一个长度为1的List,为{0}。
测试的 json 产出中,skillData.SkillBuffEffects 变成了一个长度为1的List,为{0}。

非常神奇的是,同样的设置,SkillData中存在另一个域是枚举类型,也采用 | 符号进行分割。最终产出就是空白的枚举List。

我尝试再附带一下图片,这次使用微博图床。
88816102-0bb00b00-d18a-11ea-91f4-c3d8aa9ad06e
88816108-0c48a180-d18a-11ea-9da5-a2c7a3b08498
88816104-0c48a180-d18a-11ea-8a09-487644a2bd52
批注 2020-07-30 091546

最新情况:
C# Json 输出枚举类型数组是空list,但是 binary 输出却是非空数组(对应枚举为值为0的枚举类型):
批注 2020-07-30 214626
批注 2020-07-30 214634

@davyxu
Copy link
Owner

davyxu commented Jul 31, 2020

已发现问题, 需要时间修复

davyxu added a commit that referenced this issue Jul 31, 2020
@yanjingzhaisun
Copy link
Author

已发现问题, 需要时间修复

使用 3.0.1 版本生成,问题依然存在。
数据xlsx:
data

Json(枚举数组为空,但是int数组仍然被默认添加了0)
json

Binary(枚举数组和 int 数组都被添加了数值0)
binary

@davyxu
Copy link
Owner

davyxu commented Aug 2, 2020

方便做一个最小重现的demo么? 带表格和导出shell, 可以直接丢百度云给我个链接, 我来测试下

@yanjingzhaisun
Copy link
Author

方便做一个最小重现的demo么? 带表格和导出shell, 可以直接丢百度云给我个链接, 我来测试下

好的。
链接:https://pan.baidu.com/s/1REHoU3E7WdbV1ErAsX3Trw
提取码:s56g

连接为xlsx内容、json生成文件和Unity Debug 截图(C# Binary)

@davyxu
Copy link
Owner

davyxu commented Aug 5, 2020

抱歉, 版本build上有一些问题, 已经重新更新二进制下载, 请重新下载

@yanjingzhaisun
Copy link
Author

抱歉, 版本build上有一些问题, 已经重新更新二进制下载, 请重新下载

感谢,测试后没有问题了!

@davyxu davyxu closed this as completed Aug 19, 2020
buptheidong pushed a commit to buptheidong/tabtoy that referenced this issue Feb 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants