将 JSON 属性反序列化为类
本文关键字:反序列化 属性 JSON | 更新日期: 2023-09-27 18:34:15
在大多数情况下
,除了我添加的最后一个属性外,我的 JSON 反序列化似乎工作正常。我有以下 JSON 字符串。如果我将我的类属性类型保留为属性 httpVerb 的字符串,则反序列化工作正常。但是,如果我将类属性类型保留为属性 httpVerb 的 System.Net.HttpMethod,则反序列化将失败。我真的很讨厌创建另一个枚举,因为 HTTP 动词已经在 HttpMethod 类中定义。
有人可以帮忙吗?
{
"httpTest": {
"ignoreCertificateErrors": false,
"successHTTPStatusCodes": [ 200 ],
"httpVerb": "GET"
}
}
public class HttpTest
{
public bool ignoreCertificateErrors { get; set; }
public List<HttpStatusCode> successHTTPStatusCodes { get; set; }
public HttpMethod httpVerb { get; set; }
}
public class RootObject
{
public HttpTest httpTest { get; set; }
}
您必须将 json 谓词反序列化为字符串。 也就是说,您可以返回相应的 HttpMethod 实例,以通过添加另一个属性来保留强类型。
public class HttpTest
{
public bool ignoreCertificateErrors { get; set; }
public List<HttpStatusCode> successHTTPStatusCodes { get; set; }
public string httpVerb { get; set; }
public HttpMethod HttpMethodInstance {
get { return new HttpMethod(httpVerb); }
}
}
如果谓词是有效的谓词,则可以使用它来实例化 HttpMethod 的新实例