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