首页 > 解决方案 > 有没有办法在运行时指定要进行 serde 的字段名称?

问题描述

我正在尝试使用serde反序列化 JSON 结构,但是某些字段名称在不同的环境中可能会有所不同。例如:

在开发中:

{
    "fields": {
        "field004": "This is the title",
        "field012": 456123
    }
}

在产品中:

{
    "fields": {
        "field023": "This is the title",
        "field005": 456123
    }
}

由于名称不会随时间而改变,我将它们存储在外部配置中,可以在运行时轻松检索到应用程序中,但我想避免将它们硬编码到我为处理反序列化而构建的结构中(例如在这个问题中)并且我无法找到一种方法来获取从我的配置中检索到的字段名称以用于反序列化。

我在寻找解决方案时发现的所有其他结果都没有解决我遇到的具体问题。

有没有办法在运行时指定字段的名称,还是我必须手动为其实现反序列化器并以这种方式使用配置馈送的字段名称?

标签: rustdeserializationjson-deserializationserdeserde-json

解决方案


推荐阅读