2014-05-08 43 views
0

是否有可能對這樣的結構去震盪?Json.Net Deserailization

{ 
    "name": "Peter Pan", 
    "entries": [ 
     [ 
      "x", 
      { 
       "path": "/The Missing Picture/Blog", 
      } 
     ], 
     [ 
      "y", 
      { 
       "path": "/the missing picture/Blog/Transformation-Copy.txt", 
      } 
     ]    
    ], 
    "reset": true 
} 

分爲以下類

public class Person 
{ 
    public String Name {get;set;} 
    public IDictionary<String, Entry> Entries {get;set;} 
} 

public class Entry 
{ 
    public String Path {get;set;} 
} 

回答

1

它不直接接軌,沒有。

使用json2csharp,我們可以看到JSON的等效類結構。

public class RootObject 
{ 
    public string name { get; set; } 
    public List<List<object>> entries { get; set; } 
    public bool reset { get; set; } 
} 

您可以反序列化爲此結構的對象,然後使用LINQ表達式將列表列表轉換爲字典。

如果你想匹配類的結構,你會需要JSON,看起來像這樣:

{ 
    "name": "Peter Pan", 
    "entries": [ 
     { 
      "x" : 
      { 
       "path": "/The Missing Picture/Blog", 
      } 
     }, 
     { 
      "y" : 
      { 
       "path": "/the missing picture/Blog/Transformation-Copy.txt", 
      } 
     } 
    ], 
    "reset": true 
} 
+0

我希望它可以強類型。有任何想法嗎? –

+1

你有一個包含兩個完全不同結構值的數組 - 元素0是一個字符串,元素1是你的「Entry」對象。你如何用C#表達而不是鬆散地輸入?你不能比對象數組或對象列表做得更好。 –

+0

另請參閱我的更新。這就是JSON看起來像你給的類(加上「重置」布爾值) –