[英]Optional fields when reading in JSON via DataContracts in C#
我正在使用Twitter API,可通过C#和DataContracts访问它。
我在地理领域阅读有困难。 问题在于,有时它包含子字段,而有时它为null:
"geo":{"coordinates":[52.5112,13.3577],"type":"Point"}
要么
"geo":null
我正在尝试
[DataContract]
public class Geo
{
[DataMember(Name = "coordinates")]
public string Coordinates { get; set; }
}
我得到的错误是:
“反序列化类型为Twitter.SearchResults的对象时发生错误。应从名称空间”结束元素'coordinates'。从名称空间'找到元素'item'。”
似乎解析器命中了null,但期望有一个坐标字段。 我知道我告诉解析器期望“坐标”,所以当然会抱怨。 但是我不知道如何使该字段可选。
如果我没记错的话,默认情况下,所有属性/字段都是可选的。 问题似乎在于坐标不是字符串属性,而是浮点数数组。
因此,要解决此问题,请尝试:
[DataContract]
public class Geo
{
[DataMember(Name = "coordinates")]
public double[] Coordinates { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.