【发布时间】:2018-10-29 21:42:40
【问题描述】:
我有一个 JSON 对象,它将被格式化为:
{
"myNodes": [
{
"param1": 1,
"param2": "myValue2a",
"param3": {
"myParam3param": 0
}
},
{
"param1": 1,
"param2": "myValue2b",
"param3": [
{
"myItemA": "abc",
"myItemB": "def",
"myItemC": "0"
}]
},
{
"param1": 1,
"param2": "myValue2c",
"param3": [
{
"myItemA": "ghi",
"myItemB": "jkl",
"myItemC": "0"
}]
}]
}
在 C# 中,我想知道如何构造响应对象来处理这个问题。我猜我会有某种包含 param1、param2 和 param3 的父类或接口。但是,param3 需要声明为“对象”类型,有时它是一个带有 myParam3param 的对象,有时它是一个事物列表。我也猜测我应该使用子类来确定 param3 是什么类型。
这可能吗?这应该如何实现……抽象类或接口?
【问题讨论】:
-
如果数据类型和属性数量不同,那么您可能有 2 个不同的类。
-
但我想说 myNodes 是一个 parentClass 类型的列表(不管它可能是什么......肯定有 param1、param2 和 param3)。
-
你能接受最后两个参数的值为空吗?如果是这样,那么您只能上 1 节课。
-
Json.Net 的 JObject 实现了 IDictionary。您可以使用键/值(可以是另一个对象)向其中添加任何内容,因此您不必使用严格的模型。
标签: c# json interface abstract-class