JSON访问字段作为不同的Schema



我有以下JSON定义:

public class Msg
{
[JsonProperty(PropertyName = "commandId")]
public int CommandId { get; set; }
[JsonProperty(PropertyName = "id")]
public int Id { get; set; }
[JsonProperty(PropertyName = "params")]
public JnoParams Parameters = new JnoParams();
}

public class Res_Msg
{        
[JsonProperty(PropertyName = "commandId")]
public int CommandId { get; set; }
[JsonProperty(PropertyName = "id")]
public int Id { get; set; }
[JsonProperty(PropertyName = "params")]
public Dev_Result Parameters = new Dev_Result();
}

属性"params"有不同的JSON定义,第一个是空结构,第二个是包含设备返回值的字段。当WebSocket向应用程序返回数据包时,我会根据"commandId"one_answers"id"这两个字段来决定该怎么做,并尝试根据commandId和id中的值使用不同的结构定义来打开"params"。如果必须使用普通的旧"c"语言,我会使用并集,但我使用的是JSON定义。如何告诉C#"params"是一种类型而不是另一种类型,从而相应地访问其字段?我想我可以从type1转换为type2,或者以某种方式转换它,但到目前为止还没有成功。非常感谢你的提示。

井;显然,我不必定义所有可能的JSON结构来从中检索值。我为我将要使用的结构定义了JSON,在这些结构中,我只定义了我感兴趣的字段。几十年来,我一直在描述那些在类型和大小方面必须精确定义为各种字段的结构,看到我真正需要的只是定义JSON数据包的类型以及我想要提取的字段的名称和类型,以便JSON找到并返回它,我感到耳目一新,而无需在JSON结构中定义之前或之后的所有字段。

最新更新