将json反序列化为类型T.

时间:2013-11-08 15:49:44

标签: json c#-4.0

我的类调用带有以下结构的Web服务

    [DataContract]
    public class ResponseClassContainer
    {
        [DataMember]
        public ResponseClass d { get; set; }
    }

    [DataContract]
    public class ResponseClass
    {
        [DataMember]
        public int ResponseCode { get; set; }

        [DataMember]
        public string ResponseMessage { get; set; }

        [DataMember]
        public object Response { get; set; }
    }

容器是必需的,因为返回的json返回{“d”:{....}}

如果服务返回成功,则对象Response将填充任何被称为序列化json的对象。

问题是公共对象响应。因为它是一个对象,它几乎可以是任何东西,但我发现我必须明确说它是foo类型

[DataMember]
public foo Response {get;set;}

由于我可以对一大堆课程进行反序列化,我有没有办法

[DataMember]
public T Response {get;set;} 

1 个答案:

答案 0 :(得分:0)

你可以拥有

[DataMember]
public BaseResponse Response { get; set; }

其中BaseResponse类似于

[DataContract]
[KnownType(typeof(Child1))]
[KnownType(typeof(Child2))]
public class BaseResponse

和Child1 / Child2是类似

的类
[DataContract]
public class Child1 :  BaseResponse