Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从json中选择类型对象?_C#_Json_Rest - Fatal编程技术网

C# 从json中选择类型对象?

C# 从json中选择类型对象?,c#,json,rest,C#,Json,Rest,我对json查询中的正确解析对象有问题。我读了一些关于JObject的文章。现在我有两种型号,例如汽车和摩托车。查询结果为: “车辆”: [ { “Id”:1, “标题”:“测试”, “价格”:“4000”, “类型”:“汽车” }, { “Id”:1, “标题”:“测试”, “价格”:“4000”, “驾驶执照类别”“A”, “类型”:“摩托车” } ] 如何通过类型解析自定义模型您对JSON有多少控制权?如果您正确地使用web api生成JSON,那么它将更像: "Vehicle

我对json查询中的正确解析对象有问题。我读了一些关于JObject的文章。现在我有两种型号,例如
汽车
摩托车
。查询结果为:

“车辆”:
[
{
“Id”:1,
“标题”:“测试”,
“价格”:“4000”,
“类型”:“汽车”
},
{
“Id”:1,
“标题”:“测试”,
“价格”:“4000”,
“驾驶执照类别”“A”,
“类型”:“摩托车”
}
]

如何通过
类型
解析自定义模型您对JSON有多少控制权?如果您正确地使用web api生成JSON,那么它将更像:

"Vehicles": 
 [
        {
            "Id": 1,
            "title": "test",
            "price": "4000",
            "$type": "YourNamespace.Car, YourNamespace"
        },
        {
            "Id": 1,
            "title": "test",
            "price": "4000",
            "drivingLicenseCat" "A",
            "$type": "YourNamespace.MotorBike, YourNamespace"
        }
    ]
然后当你把它带进来时,它会自动反序列化

确保在序列化并作为JSON发送的模型中,将其标记为:

[JsonProperty(ItemTypeNameHandling = TypeNameHandling.All)]

这将在序列化对象时向对象添加类型名称。我还应该注意,这是用Newtonsoft作为Json库的。我不确定内置的Json。

发布的Json只有一种类型:
Vehicle
,其中(sub)
type
Vehicle
的一个简单属性,准备与数组中的每个项目匹配的模型,解析这些项目的列表。最后筛选所需类型的项目。我认为仅仅解析某些所需类型的项没有任何好处。首先解析所有项目并筛选所需的项目(按类型)。