【发布时间】:2022-07-09 23:08:14
【问题描述】:
我遇到了无法反序列化收到的 JSON 的问题。示例 JSON:
{
"header": {
"product-type" : "product/electronics"
}
}
应该被解析的对象被命名为“product-type”并且是一个无效的 C# 标识符。在 C# 中处理这个很容易。但我面临的问题是在 CANoe 软件中处理这个问题。目前,我接收此 JSON 的方式是创建一个具有 MQTT 绑定和 JSON 序列化类型的对象。我为其分配了一个用户定义的数据类型,其中包含的成员具有与要接收的预期 JSON 相同的标识符。
这里出现了问题,因为我必须将成员的名称声明为产品类型,而这里的连字符使其无效。请注意,这是在 CANoe 软件中,而不是在独立的 C# 程序中。
四处搜索,我发现可以在标识符之前添加一个名为 JsonProperty 的东西,以 重命名 JSON 名称到任何其他标识符名称。但我意识到这只能在 C# 中完成,因为这样的属性不能通过 vCDL 代码获得。
我正在考虑使用可用的普通序列化选项。但是阅读 CANoe Vector 中的帮助文档会发现这只是用于序列化而不是反序列化。
感谢您为接收 JSON 数据所做的任何工作。如果需要任何额外信息,请发表评论。