的Json序列化

的Json序列化

问题描述:

我想用反序列化JSON如下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; } 
} 

任何想法?

+1

请将您的工作代码为回答这个问题,让用户能给予好评它例如:) – 2012-03-17 10:20:08

找到了如何做到这一点。下面的代码解决了这个问题:

[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; } 
} 
+1

我认为你的'Latitude' setter方法是错误的。它应该使用'this [1]',就像getter一样。 – svick 2012-03-17 14:09:12