簡體   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