转 C#生成JSON数据格式的函数
使用说明:
    对List<类> 集合使用的方法:
     List<TBL_CODE_MZ> objList
= objAction.GetCODE_MByList(objTbl);
     string JsonSource =
JSONHelper.ToJSON(objList); //当前页记录转成JSON格式
     但有个问题:
    
日期型数据谁转换成:@123456789@这样的数据!???不知道谁碰到过没有!!!!
 
对数据集的使用如:DataSet,DataTable
  
 JSONHelper jsonHelp = new JSONHelper();
JSONHelper jsonHelp = new JSONHelper();
 jsonHelp.success = true;
            jsonHelp.success = true; jsonHelp.totlalCount = getPrjListCount();
            jsonHelp.totlalCount = getPrjListCount(); 
             foreach (DataRow dr in dsResult.Tables[0].Rows)
            foreach (DataRow dr in dsResult.Tables[0].Rows) {
            { jsonHelp.AddItem("PRJ_ID", dr["PRJ_ID"].ToString());
                jsonHelp.AddItem("PRJ_ID", dr["PRJ_ID"].ToString()); jsonHelp.AddItem("PRJ_NAME", dr["PRJ_NAME"].ToString());
                jsonHelp.AddItem("PRJ_NAME", dr["PRJ_NAME"].ToString()); jsonHelp.AddItem("DEP_ID", dr["DEP_ID"].ToString());
                jsonHelp.AddItem("DEP_ID", dr["DEP_ID"].ToString()); jsonHelp.AddItem("PRJ_MANID", dr["PRJ_MANID"].ToString());
                jsonHelp.AddItem("PRJ_MANID", dr["PRJ_MANID"].ToString()); jsonHelp.AddItem("PRJ_STATE", dr["PRJ_STATE"].ToString());
                jsonHelp.AddItem("PRJ_STATE", dr["PRJ_STATE"].ToString());
 if (dr["PRJ_STARTDATE"] != DBNull.Value)
                if (dr["PRJ_STARTDATE"] != DBNull.Value) {
                { jsonHelp.AddItem("PRJ_STARTDATE", Convert.ToDateTime(dr["PRJ_STARTDATE"]).ToString("yyyy/MM/dd"));
                    jsonHelp.AddItem("PRJ_STARTDATE", Convert.ToDateTime(dr["PRJ_STARTDATE"]).ToString("yyyy/MM/dd")); }
                } else
                else {
                { jsonHelp.AddItem("PRJ_STARTDATE", string.Empty);
                    jsonHelp.AddItem("PRJ_STARTDATE", string.Empty); }
                } if (dr["PRJ_ENDDATE"] != DBNull.Value)
                if (dr["PRJ_ENDDATE"] != DBNull.Value) {
                { jsonHelp.AddItem("PRJ_ENDDATE", Convert.ToDateTime(dr["PRJ_ENDDATE"]).ToString("yyyy/MM/dd"));
                    jsonHelp.AddItem("PRJ_ENDDATE", Convert.ToDateTime(dr["PRJ_ENDDATE"]).ToString("yyyy/MM/dd")); }
                } else
                else {
                { jsonHelp.AddItem("PRJ_ENDDATE", string.Empty);
                    jsonHelp.AddItem("PRJ_ENDDATE", string.Empty); }
                } 
                                 jsonHelp.AddItem("PRJ_MEMO", dr["PRJ_MEMO"].ToString());
                jsonHelp.AddItem("PRJ_MEMO", dr["PRJ_MEMO"].ToString()); jsonHelp.AddItem("CODE_NAME", dr["CODE_NAME"].ToString());
                jsonHelp.AddItem("CODE_NAME", dr["CODE_NAME"].ToString()); jsonHelp.AddItem("DEP_NAME", dr["DEP_NAME"].ToString());
                jsonHelp.AddItem("DEP_NAME", dr["DEP_NAME"].ToString()); jsonHelp.AddItem("USER_NAME", dr["USER_NAME"].ToString());
                jsonHelp.AddItem("USER_NAME", dr["USER_NAME"].ToString()); jsonHelp.ItemOk();
                jsonHelp.ItemOk(); }
            }
 string strResult = jsonHelp.ToString();
            string strResult = jsonHelp.ToString();
//######################JSONHelp.cs源码######################################//
 using System;
using System; using System.Collections;
using System.Collections; using System.Collections.Generic;
using System.Collections.Generic;  using System.Text;
using System.Text;  using System.Web.Script.Serialization;
using System.Web.Script.Serialization;
 namespace framework.common
namespace framework.common {
{ /// <summary>
    /// <summary> /// JSONHelper 的摘要说明
    /// JSONHelper 的摘要说明 /// </summary>
    /// </summary> public class JSONHelper
    public class JSONHelper {
    { //对应JSON的singleInfo成员
        //对应JSON的singleInfo成员 public string singleInfo = string.Empty;
        public string singleInfo = string.Empty;
 protected string _error = string.Empty;
        protected string _error = string.Empty; protected bool _success = true;
        protected bool _success = true; protected long _totalCount = 0;
        protected long _totalCount = 0; protected System.Collections.ArrayList arrData = new ArrayList();
        protected System.Collections.ArrayList arrData = new ArrayList(); 
         
                public JSONHelper()
        public JSONHelper() {
        { 
             }
        } public static string ToJSON(object obj)
        public static string ToJSON(object obj) {
        { JavaScriptSerializer serializer = new JavaScriptSerializer();
            JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(obj);
            return serializer.Serialize(obj); }
        } public static string ToJSON(object obj, int recursionDepth)
        public static string ToJSON(object obj, int recursionDepth) {
        { JavaScriptSerializer serializer = new JavaScriptSerializer();
            JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.RecursionLimit = recursionDepth;
            serializer.RecursionLimit = recursionDepth; return serializer.Serialize(obj);
            return serializer.Serialize(obj); }
        }
 //对应于JSON的success成员
        //对应于JSON的success成员 #region 设置success为TURE,代表成功
        #region 设置success为TURE,代表成功 public bool success
        public bool success {
        { get
            get {
            { return _success;
                return _success; }
            } set
            set {
            { //如设置为true则清空error
                //如设置为true则清空error if (success) _error = string.Empty;
                if (success) _error = string.Empty; _success = value;
                _success = value; }
            } }
        } #endregion
        #endregion //对应于JSON的error成员
        //对应于JSON的error成员 public string error
        public string error {
        { get
            get {
            { return _error;
                return _error; }
            } set
            set {
            { //如设置error,则自动设置success为false
                //如设置error,则自动设置success为false if (value != "") _success = false;
                if (value != "") _success = false; _error = value;
                _error = value; }
            } }
        } public long totlalCount
        public long totlalCount {
        { get { return _totalCount; }
            get { return _totalCount; } set { _totalCount = value; }
            set { _totalCount = value; } }
        } //重置,每次新生成一个json对象时必须执行该方法
        //重置,每次新生成一个json对象时必须执行该方法 public void Reset()
        public void Reset() {
        { _success = true;
            _success = true; _error = string.Empty;
            _error = string.Empty; singleInfo = string.Empty;
            singleInfo = string.Empty; arrData.Clear();
            arrData.Clear(); }
        } #region
        #region
 public void AddItem(string name, string value)
        public void AddItem(string name, string value) {
        { arrData.Add(""" + name + "":" + """ + value + """);
            arrData.Add(""" + name + "":" + """ + value + """); }
        } 
         #endregion
        #endregion

 public void ItemOk()
        public void ItemOk() {
        { arrData.Add("<BR>");
            arrData.Add("<BR>"); }
        }
 //序列化JSON对象,得到返回的JSON代码
        //序列化JSON对象,得到返回的JSON代码 public override string ToString()
        public override string ToString() {
        { StringBuilder sb = new StringBuilder();
            StringBuilder sb = new StringBuilder(); sb.Append("{");
            sb.Append("{"); sb.Append("totalCount:" + totlalCount.ToString() + ",");
            sb.Append("totalCount:" + totlalCount.ToString() + ","); sb.Append("success:" + _success.ToString().ToLower() + ",");
            sb.Append("success:" + _success.ToString().ToLower() + ","); sb.Append("error:"" + _error.Replace(""", "\"") + "",");
            sb.Append("error:"" + _error.Replace(""", "\"") + "","); sb.Append("singleInfo:"" + singleInfo.Replace(""", "\"") + "",");
            sb.Append("singleInfo:"" + singleInfo.Replace(""", "\"") + "","); sb.Append("data:[");
            sb.Append("data:[");
 int index = 0;
            int index = 0; sb.Append("{");
            sb.Append("{"); if (arrData.Count <= 0)
            if (arrData.Count <= 0) {
            { sb.Append("}]");
                sb.Append("}]"); }
            } else
            else {
            { foreach (string val in arrData)
                foreach (string val in arrData) {
                { index++;
                    index++;
 if (val != "<BR>")
                    if (val != "<BR>") {
                    { sb.Append(val + ",");
                        sb.Append(val + ","); }
                    } else
                    else {
                    { sb = sb.Replace(",", "", sb.Length - 1, 1);
                        sb = sb.Replace(",", "", sb.Length - 1, 1); sb.Append("},");
                        sb.Append("},"); if (index < arrData.Count)
                        if (index < arrData.Count) {
                        { sb.Append("{");
                            sb.Append("{"); }
                        } }
                    } 
                    }
                } sb = sb.Replace(",", "", sb.Length - 1, 1);
                sb = sb.Replace(",", "", sb.Length - 1, 1); sb.Append("]");
                sb.Append("]"); }
            } 
             sb.Append("}");
            sb.Append("}"); return sb.ToString();
            return sb.ToString(); }
        } }
    } }
} 
                     
                    
                 
                    
                
 
 
             
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号