2013-04-09 18 views

回答

11

這裏有一個快速的樣品我颳起這似乎工作:

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Runtime.Serialization; 
using System.Runtime.Serialization.Json; 

class Test 
{ 
    static void Main() 
    { 
     using (Stream stream = File.OpenRead("test.json")) 
     { 
      var serializer = new DataContractJsonSerializer(typeof(Library)); 
      Library library = (Library) serializer.ReadObject(stream); 
      Console.WriteLine(library.Books[0].Name); 
     } 

    } 
} 

[DataContract] 
class Book 
{ 
    [DataMember(Name="name")] public string Name { get; set; } 
    [DataMember(Name="orig")] public string Orig { get; set; } 
    [DataMember(Name="date")] public string Date { get; set; } 
    [DataMember(Name="lang")] public string Lang { get; set; } 
} 

[DataContract] 
class Library 
{ 
    [DataMember(Name="books")] public IList<Book> Books { get; set; } 
    [DataMember(Name="src")] public string Src { get; set; } 
    [DataMember(Name="id")] public string Id { get; set; } 
} 

我確定有很多其他的選項可以調整,但至少應該讓你開始。

+0

謝謝,如果在其他字符串中有''得分':9.080557e-06',但我無法解析它。什麼類型我不能解析? – Sakura 2013-04-09 06:22:12

+2

@TuyenTk:看起來你應該可以將它解析爲「double」。 – 2013-04-09 06:37:48