繁体   English   中英

ReadAsAsync从Json数据中获取空值?

[英]ReadAsAsync got null values from Json data?

我上课了

public class C
{
    public int Id { get; set; }
    public SqlXml Range { get; set; } // System.Data.SqlTypes.SqlXml
}

以下代码用于从web api读取数据。

    List<C> cs = null;
    var response = await client.GetAsync(url);
    if (response.IsSuccessStatusCode)
    {
        cs = await response.Content.ReadAsAsync<List<C>>(); // cs[..].Range is null
    }

以下是从Web API返回的一些示例Json文件。

[{"id":0,"range":{"isNull":false,"value":"<Range>....</Range>"}},
 {"id":1,"range":{"isNull":false,"value":"<Range>...</Range>"}},
 {"id":2,"range":{"isNull":false,"value":"<Range>....</Range>"}}]

但是,变量cs具有以下值。 Id值是正确的。 但是所有Range得到了空值?

0, null
1, null
2, null

调试器显示cs[...].Range.IsNulltrue

System.Data.SqlTypes.SqlXml的属性是只读的。 当反序列化程序尝试创建该类型的对象时,它将在尝试设置属性时失败。

创建自己的类以保存所需的值

public class Range {
    public bool IsNull { get; set; }
    public string Value { get; set; }
}

public class C {
    public int Id { get; set; }
    public Range Range { get; set; }
}

现在应该允许正确填充Range

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM