将JSON转换为C#对象列表

时间:2014-03-06 20:51:56

标签: c# asp.net json

对不起,Json新手。已经阅读但无法使其正常工作。我在.aspx页面上返回了这个json格式的字符串,我正在使用C#。

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

我有一个Contact对象。

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

我需要将每个联系人都放入Contact对象和联系人列表中 - 只需使用Framework 4.0中内置的任何内容。我对Json的'ContactsListResult'位不感兴趣 - 我只对方括号内的联系人列表感兴趣。

3 个答案:

答案 0 :(得分:0)

DataContractJsonSerializer是您需要使用的课程。请看这里的演示:

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

另外,谷歌吧。这花了我2分钟的研究。

这是关于同一项目的另一个堆栈溢出问题。别人推荐JSon.NET Read JSON using DataContractJsonSerializer

答案 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/

Bastian M.K.太田

答案 2 :(得分:0)

您可以使用此库,而无需在没有任何数据注释的情况下装饰您的类... http://james.newtonking.com/json