【问题标题】:JSON Deserialize to an interfaceJSON 反序列化为接口
【发布时间】:2019-06-11 15:21:38
【问题描述】:

我有一个用于通信的类“CommunicationClass1”。 它有一个属性 ProductName 和许多其他属性和类。

反序列化后,我需要根据 ProductName 属性将其提供给正确适配器类“AdaptorClass1”的构造函数。

(adapterClasses 继承自 AdaptorBase 类)

这是一个将 CommunicationClass1 保存到 JSON 文件的不同软件,我需要加载它。第二个软件可能使用不同的通信类“CommunicationClass2”,我也需要使用相同的例程加载它。

那么问题来了,我如何创建一个反序列化任何通信类并读出 ProductName 的例程,以便我可以加载(反序列化)具有正确通信类类型的文件并将其提供给正确的适配器类?

基本上我不知道该文件是否被序列化为 CommunicationClass1 或 CommunicationClass2 类型,但我知道它将具有 ProductName 属性。

如果可以的话,这是否可行?

【问题讨论】:

    标签: .net json serialization deserialization


    【解决方案1】:

    好吧,在反序列化有效负载后,您肯定需要一些区分标准。一种可能性是从每个源中提取一个 JSON 并比较它们,以便您可以识别仅存在于给定源中的特定属性。如果您能做到这一点,您只需根据该标准做出决定。希望对您有所帮助。

    【讨论】:

    • 好的,所以没有办法只将 JSON 读入字符串并解析它,以便我可以获得 ProductName 属性的值(字符串类型)。我想我可以将它作为文本读入并执行此操作,但我希望 Newton JSON 例程可以简化它。
    • 请注意,您不需要手动“解析” JSON。您应该使用您选择的语言支持对其进行解码。如果您可以通过检查“ProductName”属性来推断对象的类型,那么这就是要走的路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2019-05-24
    • 2018-03-09
    • 1970-01-01
    • 2013-07-28
    • 2011-05-02
    相关资源
    最近更新 更多