使用JSON.net 将实体类生成JSON字符串

使用JSON.net 生成实体类的JSON串是很简单的,比如:

//实体类

 

ExpandedBlockStart.gif 代码
public class SysNavModel
{
        public SysNavModel()
        { }
        
        
// / <summary>
         // / 构造函数 sys_nav
         // / </summary>
         // / <param name="navid">navid</param>
         // / <param name="title">title</param>
         // / <param name="url">url</param>
         // / <param name="iconcls">iconcls</param>
         // / <param name="parentid">parentid</param>
         // / <param name="visible">visible</param>
         // / <param name="orderid">orderid</param>
        public SysNavModel( int ?  navid, string title, string url, string iconcls,  int ?  parentid, bool ?  visible,  int ?  orderid)
        {
            
this .navid  =  navid;
            
this .title  =  title;
            
this .url  =  url;
            
this .iconcls  =  iconcls;
            
this .parentid  =  parentid;
            
this .visible  =  visible;
            
this .orderid  =  orderid;
        }
        
        #region 实体属性
        private 
int ?  _navid;
        private string _title;
        private string _url;
        private string _iconcls;
        private 
int ?  _parentid;
        private bool
?  _visible;
        private 
int ?  _orderid;
        private string _ptag;
          
        
// / <summary>
         // / navid
         // / </summary>
        public  int ?  navid
        {
            set { _navid 
=  value; }
            get { 
return  _navid; }
        }

        
// / <summary>
         // / 页面标记
         // / </summary>
        public string ptag
        {
            get { 
return  _ptag; }
            set { _ptag 
=  value; }
        }

        
// / <summary>
         // / 导航菜单名称
         // / </summary>
        public string title
        {
            set { _title 
=  value; }
            get { 
return  _title; }
        }
                  
        
// / <summary>
         // / 链接地址
         // / </summary>
        public string url
        {
            set { _url 
=  value; }
            get { 
return  _url; }
        }
                  
        
// / <summary>
         // / ICON 样式类名
         // / </summary>
        public string iconcls
        {
            set { _iconcls 
=  value; }
            get { 
return  _iconcls; }
        }
                  
        
// / <summary>
         // / 上级ID
         // / </summary>
        public  int ?  parentid
        {
            set { _parentid 
=  value; }
            get { 
return  _parentid; }
        }
                  
        
// / <summary>
         // / 是否显示
         // / </summary>
        public bool ?  visible
        {
            set { _visible 
=  value; }
            get { 
return  _visible; }
        }
                  
        
// / <summary>
         // / 排序ID
         // / </summary>
        public  int ?  orderid
        {
            set { _orderid 
=  value; }
            get { 
return  _orderid; }
        }

        
// / <summary>
         // / 权限数组
         // / </summary>
        public ArrayList Permissions
        {
            get 
            {
                
return  NavPermissionDal.Current.GetPermissionArray( this .navid.Value);
            }
        }
        #endregion
//主要代码
        public override string ToString()
        {
            StringBuilder sb 
=   new  StringBuilder();
            StringWriter sw 
=   new  StringWriter(sb);

            
new  JsonSerializer().Serialize( new  JsonTextWriter(sw),  this );

            
return  sb.ToString();
        }
}

 
重写了实体类的ToString()方法
在调时 直接调用实体类的ToString() 方法就可以生JSON字符串了。
简单吧

 

 我们可以封装一个方法以便以后使用

 

public static string ToJson(object obj)
{
   StringBuilder sb 
=   new  StringBuilder();
   StringWriter sw 
=   new  StringWriter(sb);

   JsonSerializer json 
=   new  JsonSerializer();
   json.Serialize(
new  JsonTextWriter(sw),obj);

   
return  sb.ToString();
 }

 

 

转载于:https://www.cnblogs.com/hxling/archive/2010/10/31/1865575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值