关于导入 UIGF Json 文件 uid 字段的问题
Closed this issue · 7 comments
在 UIGF 2.0 标准中,有这样的描述:
导出的格式
以同值字段提取至上层的**,我们拟定了以下json格式
{
"info" : {
"uid" : "000000000",
"lang" : "zh-cn",
...
},
"list" : [
{
"gacha_type": "000",
"item_id": "",
"count": "1",
"time": "yyyy-MM-dd HH:mm:ss",
"name": "以理服人",
"item_type": "武器",
"rank_type": "3",
"id": "1600099200004770203",
"uigf_gacha_type": "000",
},
...
]
}
于是,uid 和 lang 字段在 list 中并不应该是必须的。然而在这里的逻辑:
https://github.com/Scighost/KeqingNiuza/blob/main/src/KeqingNiuza.Core/Wish/JsonImporter.cs#29
意味着,必须在导入的 Json 的每一条记录中都必须有 uid 字段,这也导致了目前(2.2.6 版本的本工具)无法成功导入遵守了 UIGF 规范的 Genshin Wish Export v0.8.1 导出的 Json 文件。
"info": {
"uid": "100000000",
"lang": "zh-cn",
"export_time": 1643219776065,
"export_app": "genshin-wish-export",
"export_app_version": "0.8.1",
"uigf_version": "2.1"
},
"list": [
{
"gacha_type": "301",
"time": "2020-11-01 18:35:47",
"name": "黎明神剑",
"item_type": "武器",
"rank_type": "3",
"id": "",
"uigf_gacha_type": "301"
},
...
]
}
于是,选择了类似格式的 Json 文件之后,在列表里看不到任何记录项。
出于个人用途,想从 Genshin Wish Export 导入开服以来的抽卡记录到本工具,写了个简单的 Json 格式化 Python 脚本,能把当前版本前者导出的 Json 喂给后者。
鄙人实在有点菜,在 VS 里面跑不起来本项目,不然就自己改改试试了,不知道为什么 VS 始终认为 clone 下来的本项目的 .Net 版本是 4.x……
回复一下自己,不只是 uid 字段有问题,仅补上 uid 字段仍然会提示格式不正确,能力有限,不想看格式判断逻辑了,直接在脚本里粗暴补全了所有的字段,就这样吧。似乎刻晴牛杂遇到 id 缺失的记录就会报错?
多半是 System.Text.Json 某些实体特性 引起的问题
@CHxCOOH 可以提供一份记录用来测试么
@CHxCOOH 可以提供一份记录用来测试么
可以,我已把记录和截图一起上传到CHxCOOH/GitHubImages/Demos
我测试没有问题
我测试完也是没有问题了