2014-03-06 254 views
0

對不起,新的Json。已經閱讀但不能得到這個工作。我有這個json格式的字符串被返回到.aspx頁面上,我正在使用C#。將JSON轉換爲C#對象列表

{"ContactsListResult":[{"Contact":"Fred Smith","ContactID":25},{"Contact":"Bill Wilson","ContactID":45}]} 

我有一個聯繫對象。

public class Contact 
{ 
public string Contact { get; set; } 
public int ContactID { get; set; } 
} 

我需要每個聯繫到聯繫對象,進入聯繫人列表 - 只要使用任何內置框架4.0。我對Json的'ContactsListResult'位不感興趣 - 我只是對方括號內的聯繫人列表感興趣。

+0

你開到使用NuGet包?你可以做你自己的解析,但有些庫可以做你想做的,甚至是微軟發佈的。 – BradleyDotNET

+0

我通常使用一些nuget包來將JSON序列化爲C#對象,比如http://www.nuget.org/packages/System.Json – user17753

+1

至少你可以發佈一個可編譯的類。 –

回答

0
using System; 
using System.Collections.Generic; 
using System.Web.Script.Serialization; 

namespace ConsoleApplication1 { 


    class Program { 

     [Serializable] 
     public class ContactsListResult { 
     public string Contact { get; set; } 
     public int ContactID { get; set; } 
     } // 

     [Serializable] 
     public class CList { 
     public List<ContactsListResult> ContactsListResult = new List<ContactsListResult>(); 
     } // 

     static void Main(string[] args) { 
     string s = "{\"ContactsListResult\":[{\"Contact\":\"Fred Smith\",\"ContactID\":25},{\"Contact\":\"Bill Wilson\",\"ContactID\":45}]}"; 

     JavaScriptSerializer lSerializer = new JavaScriptSerializer(); 
     CList lItems = lSerializer.Deserialize<CList>(s); 

     foreach (ContactsListResult lItem in lItems.ContactsListResult) Console.WriteLine(lItem.Contact + " " + lItem.ContactID); 

     Console.ReadLine(); 
     } // 

    } // class 
} // namespace 

請跟隨我的博客的細節:

http://csharphardcoreprogramming.wordpress.com/2014/01/23/json-part-1-basics-follow-up-to-xml/

巴斯蒂安M.K.大田

+0

非常感謝你。 –

0

DataContractJsonSerializer是您需要使用的類。在這裏看到一個演示:

http://msdn.microsoft.com/en-us/library/hh674188.aspx

此外,谷歌它。這花了我2分鐘的研究。

這是關於同一項目的另一個堆棧溢出問題。有人建議JSon.NET Read JSON using DataContractJsonSerializer

+0

@Downvoter ...爲什麼? –

+0

'DataContractJsonSerializer是你需要使用的類'它是唯一的內置類嗎?爲什麼它比JavaScriptSerializer更好? –

+0

@ L.B你低估了他,因爲他不知道每個可能的解決方案?不公平。他提供了有效的解決方案。 –