Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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
基于属性值将json转换为C#子类_C#_Json - Fatal编程技术网

基于属性值将json转换为C#子类

基于属性值将json转换为C#子类,c#,json,C#,Json,我目前正在使用Microsoft.AspNet.WebApi.Client 5.0.0,其中包括Newtonsoft.Json 4.5.11。我的解决方案是VS 2012和.Net 4.5。我正在对Box.com进行REST调用(外部调用…我无法控制json内容)。从以下(精简的)响应Json中,我想根据响应中“type”属性的值,将“entries”数组反序列化为强类型的“folder”和“file”对象。我试图避免任何自定义转换。是否有一种直接的方法可以做到这一点,也许是通过属性?我觉得我错

我目前正在使用Microsoft.AspNet.WebApi.Client 5.0.0,其中包括Newtonsoft.Json 4.5.11。我的解决方案是VS 2012和.Net 4.5。我正在对Box.com进行REST调用(外部调用…我无法控制json内容)。从以下(精简的)响应Json中,我想根据响应中“type”属性的值,将“entries”数组反序列化为强类型的“folder”和“file”对象。我试图避免任何自定义转换。是否有一种直接的方法可以做到这一点,也许是通过属性?我觉得我错过了一些简单的事情

{
    "total_count" : 2,
    "entries" : [{
                   "type" : "folder",
                   "id" : "12345678",
                   "sequence_id" : "2",
                   "etag" : "2",
                   "name" : "Some Folder",
                },

                {
                   "type" : "file",
                   "id" : "4324348834",
                   "sequence_id" : "8",
                   "etag" : "8",
                   "sha1" : "134324329e9k93kdieoikek",
                   "name" : "Testing.xlsx",
                   "description" : "",
                   "item_status" : "active"
                }
    ],
    "limit" : 30,
    "offset" : 0
}

您使用的是什么版本的VS/.NET?我相信你必须做一些自定义转换,但是使用一些关键字可以减轻很多麻烦(使用
字典作为后台存储)。@Brad。。。这个答案似乎是一个解决方案,但对于是否有一种非定制的方法来实现这一点,似乎并不确定。在这里,JSON.NET的使用是一个限制因素吗?有更好的库来简化它吗?这似乎是编写自定义转换器的基础。