rust - 有没有办法在运行时指定要进行 serde 的字段名称?
问题描述
我正在尝试使用serde反序列化 JSON 结构,但是某些字段名称在不同的环境中可能会有所不同。例如:
在开发中:
{
"fields": {
"field004": "This is the title",
"field012": 456123
}
}
在产品中:
{
"fields": {
"field023": "This is the title",
"field005": 456123
}
}
由于名称不会随时间而改变,我将它们存储在外部配置中,可以在运行时轻松检索到应用程序中,但我想避免将它们硬编码到我为处理反序列化而构建的结构中(例如在这个问题中)并且我无法找到一种方法来获取从我的配置中检索到的字段名称以用于反序列化。
我在寻找解决方案时发现的所有其他结果都没有解决我遇到的具体问题。
有没有办法在运行时指定字段的名称,还是我必须手动为其实现反序列化器并以这种方式使用配置馈送的字段名称?
解决方案
推荐阅读
- vb.net - StreamReader 仅从多行、间隔文本文件中读取和输出最后一行
- r - 如何在使用 ggplot2 创建的条形图上添加条纹
- python - 如何将postgresql插入查询中的变量转义到python脚本中?
- javascript - Javascript 事件侦听器在 IE11 中不起作用
- java - java.lang.IllegalArgumentException:“值”不是具有领域的有效托管对象
- wordpress - 如何在自定义帖子类型上使用来自 Woocommerce 的次要图像上传元框?
- c++ - C ++如何调用没有错误的void函数?
- asp.net - 使用现有 ASP.NET 用户存储的“单点登录”
- python - 如何在 python 中从具有多个条件的数组 A 中获取布尔数组?
- c# - 使用 Id 与对象的 EF 外键引用