【问题标题】:Json deserialization of anonymous array匿名数组的Json反序列化
【发布时间】:2012-03-17 09:44:41
【问题描述】:

我想使用 DataContractJsonSerializer 反序列化以下 json:

 "coordinates": [
                           [
                               18.008966033966707,
                               59.328701014313964
                           ],
                           [
                               18.008642062225096,
                               59.3283087435048
                           ]
                       ]

由于数组中的项目没有名称,我不知道如何告诉 DataContractJsonSerializer 这些项目是什么。我试过了:

[DataContract]
public  class Coordinate :IExtensibleDataObject
{

    [DataMember(Order = 1)]
    public decimal Longitude { get; set; }

    [DataMember(Order = 2)]
    public decimal Latitude { get; set; }

    public ExtensionDataObject ExtensionData { get; set; }
}

有什么想法吗?

【问题讨论】:

  • 请添加您的工作代码作为此问题的答案,以便用户可以对其进行投票:)

标签: c# .net json datacontractjsonserializer


【解决方案1】:

了解如何执行此操作。下面的代码解决了这个问题:

[CollectionDataContract] 
public  class Coordinate : List<object> 
{ 
    public decimal Longitude { get { return (decimal)this[0]; } set { this[0] = value; } } 

    public decimal Latitude { get { return (decimal)this[1]; } set { this[1] = value; } } 

    public ExtensionDataObject ExtensionData { get; set; } 
} 

【讨论】:

  • 我认为您的 Latitude 设置器是错误的。它应该使用this[1],就像getter一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
相关资源
最近更新 更多