2011-06-18 209 views
4

如何設置Newtonsoft Json.net將此文本反序列化爲.NET對象?如何使用JSON.NET反序列化?

[ 
    [ 
     "US\/Hawaii", 
     "GMT-10:00 - Hawaii" 
    ], 
    [ 
     "US\/Alaska", 
     "GMT-09:00 - Alaska" 
    ], 
] 

對於獎勵積分,這種類型的結構稱爲Json。我試圖尋找匿名對象,但沒有任何運氣。

+0

你在尋找反序列化到一個自定義的對象類型,或只是一個JSON「DOM」? DOM可能更容易,因爲它不需要對JSON模式進行任何更改,而「序列化」API往往更加挑剔。 –

+0

DOM會對我好。 –

回答

6

這JSON字符串(或差不多,這將是一個有效的JSON你解決它,並刪除後面的逗號後,因爲現在它無效)代表的字符串數組的數組。它可以很容易地反序列化爲使用內置到.NET JavaScriptSerializerstring[][]

using System; 
using System.Web.Script.Serialization; 

class Program 
{ 

    static void Main() 
    { 
     var json = 
@"[ 
    [ 
     ""US\/Hawaii"", 
     ""GMT-10:00 - Hawaii"" 
    ], 
    [ 
     ""US\/Alaska"", 
     ""GMT-09:00 - Alaska"" 
    ] 
]"; 
     var serializer = new JavaScriptSerializer(); 
     var result = serializer.Deserialize<string[][]>(json); 
     foreach (var item in result) 
     { 
      foreach (var element in item) 
      { 
       Console.WriteLine(element); 
      } 
     } 
    } 
} 

和完全相同的結果可能與JSON.NET實現使用下列內容:

var result = JsonConvert.DeserializeObject<string[][]>(json); 
0

要查看博客條目,詳細說明如何在.NET和JSON之間進行序列化和反序列化,check this out。我發現它非常有幫助。