繁体   English   中英

通过C#中的DataContracts读取JSON时的可选字段

[英]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.

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