2012-03-17 94 views
0

我想用反序列化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

回答

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

我認爲你的'Latitude' setter方法是錯誤的。它應該使用'this [1]',就像getter一樣。 – svick 2012-03-17 14:09:12