2014-03-06 223 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你低估了他,因为他不知道每个可能的解决方案?不公平。他提供了有效的解决方案。 –