我正在使用Twitter API,通过C#和DataContracts访问它。通过C#中的DataContracts在JSON中读取时的可选字段
我在阅读地理区域时遇到困难。问题是,有时它包含的子领域,而有时则是空:
"geo":{"coordinates":[52.5112,13.3577],"type":"Point"}
或
"geo":null
我与
[DataContract]
public class Geo
{
[DataMember(Name = "coordinates")]
public string Coordinates { get; set; }
}
我得到的错误尝试,它是:
“反序列化类型为Twitter.S的对象时发生错误earchResults。从预期的命名空间''结束元素“坐标”。找到的元素从命名空间“项目”“”。”
好像解析器打了一个空,但预期坐标领域。据我所知,我告诉解析器期望‘坐标’,所以当然它抱怨。但我不知道如何让这个字段可选
您是否尝试过使用公共字符串坐标;而不是财产? – ChrisBD 2011-12-20 14:42:51
@ChrisBD:这是错误的路要走。 'DataContract'不适用于实例变量。它需要属性。当MSDN例子只是这样做时,有趣的事情是 – Codo 2011-12-20 15:38:31
。 http://msdn.microsoft.com/en-us/library/ms729813.aspx – ChrisBD 2011-12-20 16:04:46