Newtonsoft.Json 应用

Newtonsoft.Json下载地址http://json.codeplex.com/

根据自己的项目生成DLL并引用

JSON格式为

{"result":"200","info":[{"_cid":5,"_name":"Iphone4","_parentid":2,"_status":true},{"_cid":7,"_name":"手机外套","_parentid":2,"_status":true},{"_cid":8,"_name":"手机模","_parentid":2,"_status":true}]}

解析JOSN
View Code
 Maticsoft.Model.BackInfo backinfo = (Maticsoft.Model.BackInfo)
                 JsonConvert.DeserializeObject(JsonData, typeof(Maticsoft.Model.BackInfo)); 

             if (backinfo.result == "200")//成功
             {
                 List<Maticsoft.Model.IphoneClassify> list = backinfo.info;
                 Dictionary<int, String> dic = new System.Collections.Generic.Dictionary<int, String>();
                 for (int i = 0; i < list.Count; i++)
                 {
                     Maticsoft.Model.IphoneClassify classify = (Maticsoft.Model.IphoneClassify)list[i];
                     dic.Add(classify._cid, classify._name);
                 }
                 this.DataList1.DataSource = dic;
                 this.DataList1.DataBind();
             }
             else { 
                //失败
             }

这里特别注意的是 JSON的字段要和Model类的属性名保持一至不然返回Null 就是这个问题研究半天才弄明白,多谢http://smalltalk.cnblogs.com/http://www.cnblogs.com/xiaopohou/

的帮忙

我的model类是用动软生成 的

最后将model类改为 

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Maticsoft.Model
{
    /// <summary>
    ///返回JSON属性
    /// </summary>
    [Serializable]
   public class BackInfo
    { 
       public BackInfo() { 
           
       }
        public String result { get; set; }
        public List<IphoneClassify> info { get; set; }
    }

    /// <summary>
    ///产品类型
    /// </summary>
    [Serializable]
    public class IphoneClassify
    {
        public int _cid { get; set; }
        public string _name { get; set; }
        public int _parentid { get; set; }
        public bool _status { get; set; }

    }
}

 

序列化JOSN
View Code
 DataTable dt = new Maticsoft.BLL.Iphone_Classify().GetList("parentID=" + strParentID).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    List<Maticsoft.Model.Iphone_Classify> list = new List<Model.Iphone_Classify>();
                    foreach (DataRow row in dt.Rows)
                    {
                        Maticsoft.Model.Iphone_Classify model = new Model.Iphone_Classify()
                        {
                            CID = int.Parse(row["CID"].ToString()),
                            Name = row["Name"].ToString(),
                            parentID = int.Parse(row["parentID"].ToString()),
                            Status = bool.Parse(row["Status"].ToString())
                        };
                        list.Add(model);
                    }
                    //微软的JSON序列化
                   // Classifyinfo = Json.JsonInfo("200", Json.CompanyJsonSerializer<List<Maticsoft.Model.Iphone_Classify>>(list));
                    // Newtonsoft.Json
                    Classifyinfo = Json.JsonInfo("200", JsonConvert.SerializeObject(list));
                }
                else
                {
                    Classifyinfo = Json.JsonInfo("400", "未找到相应数据");
                }

 



posted on 2012-08-21 16:36  freexiaoyu  阅读(13751)  评论(0编辑  收藏  举报