zoukankan      html  css  js  c++  java
  • 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();

                jsonHelp.success 
    = true;
                jsonHelp.totlalCount 
    = getPrjListCount();
                
                
    foreach (DataRow dr in dsResult.Tables[0].Rows)
                {
                    jsonHelp.AddItem(
    "PRJ_ID", dr["PRJ_ID"].ToString());
                    jsonHelp.AddItem(
    "PRJ_NAME", dr["PRJ_NAME"].ToString());
                    jsonHelp.AddItem(
    "DEP_ID", dr["DEP_ID"].ToString());
                    jsonHelp.AddItem(
    "PRJ_MANID", dr["PRJ_MANID"].ToString());
                    jsonHelp.AddItem(
    "PRJ_STATE", dr["PRJ_STATE"].ToString());

                    
    if (dr["PRJ_STARTDATE"!= DBNull.Value)
                    {
                        jsonHelp.AddItem(
    "PRJ_STARTDATE", Convert.ToDateTime(dr["PRJ_STARTDATE"]).ToString("yyyy/MM/dd"));
                    }
                    
    else
                    {
                        jsonHelp.AddItem(
    "PRJ_STARTDATE"string.Empty);
                    }
                    
    if (dr["PRJ_ENDDATE"!= DBNull.Value)
                    {
                        jsonHelp.AddItem(
    "PRJ_ENDDATE", Convert.ToDateTime(dr["PRJ_ENDDATE"]).ToString("yyyy/MM/dd"));
                    }
                    
    else
                    {
                        jsonHelp.AddItem(
    "PRJ_ENDDATE"string.Empty);
                    }
                                    
                    jsonHelp.AddItem(
    "PRJ_MEMO", dr["PRJ_MEMO"].ToString());
                    jsonHelp.AddItem(
    "CODE_NAME", dr["CODE_NAME"].ToString());
                    jsonHelp.AddItem(
    "DEP_NAME", dr["DEP_NAME"].ToString());
                    jsonHelp.AddItem(
    "USER_NAME", dr["USER_NAME"].ToString());
                    jsonHelp.ItemOk();
                }

                
    string strResult = jsonHelp.ToString();

    //######################JSONHelp.cs源码######################################//


    using System;
    using System.Collections;
    using System.Collections.Generic; 
    using System.Text; 
    using System.Web.Script.Serialization;

    namespace framework.common
    {
        
    /**//// <summary>
        
    /// JSONHelper 的摘要说明
        
    /// </summary>
        public class JSONHelper
        {
            
    //对应JSON的singleInfo成员
            public string singleInfo = string.Empty;

            
    protected string _error = string.Empty;
            
    protected bool _success = true;
            
    protected long _totalCount = 0;
            
    protected System.Collections.ArrayList arrData = new ArrayList();
            
                   
            
    public JSONHelper()
            {
                
            }
            
    public static string ToJSON(object obj)
            {
                JavaScriptSerializer serializer 
    = new JavaScriptSerializer();
                
    return serializer.Serialize(obj);
            }
            
    public static string ToJSON(object obj, int recursionDepth)
            {
                JavaScriptSerializer serializer 
    = new JavaScriptSerializer();
                serializer.RecursionLimit 
    = recursionDepth;
                
    return serializer.Serialize(obj);
            }

            
    //对应于JSON的success成员
            设置success为TURE,代表成功#region 设置success为TURE,代表成功
            
    public bool success
            {
                
    get
                {
                    
    return _success;
                }
                
    set
                {
                    
    //如设置为true则清空error
                    if (success) _error = string.Empty;
                    _success 
    = value;
                }
            }
            
    #endregion
            
    //对应于JSON的error成员
            public string error
            {
                
    get
                {
                    
    return _error;
                }
                
    set
                {
                    
    //如设置error,则自动设置success为false
                    if (value != "") _success = false;
                    _error 
    = value;
                }
            }
            
    public long totlalCount
            {
                
    get { return _totalCount; }
                
    set { _totalCount = value; }
            }
            
    //重置,每次新生成一个json对象时必须执行该方法
            public void Reset()
            {
                _success 
    = true;
                _error 
    = string.Empty;
                singleInfo 
    = string.Empty;
                arrData.Clear();
            }
            
    #region

            
    public void AddItem(string name, string value)
            {
                arrData.Add(
    """ + name + "":" + """ + value + """);
            }
            
            
    #endregion


            
    public void ItemOk()
            {
                arrData.Add(
    "<BR>");
            }

            
    //序列化JSON对象,得到返回的JSON代码
            public override string ToString()
            {
                StringBuilder sb 
    = new StringBuilder();
                sb.Append(
    "{");
                sb.Append(
    "totalCount:" + totlalCount.ToString() + ",");
                sb.Append(
    "success:" + _success.ToString().ToLower() + ",");
                sb.Append(
    "error:"" + _error.Replace(""""\"") + "",");
                sb.Append(
    "singleInfo:"" + singleInfo.Replace(""""\"") + "",");
                sb.Append(
    "data:[");

                
    int index = 0;
                sb.Append(
    "{");
                
    if (arrData.Count <= 0)
                {
                    sb.Append(
    "}]");
                }
                
    else
                {
                    
    foreach (string val in arrData)
                    {
                        index
    ++;

                        
    if (val != "<BR>")
                        {
                            sb.Append(val 
    + ",");
                        }
                        
    else
                        {
                            sb 
    = sb.Replace(",""", sb.Length - 11);
                            sb.Append(
    "},");
                            
    if (index < arrData.Count)
                            {
                                sb.Append(
    "{");
                            }
                        }
                       
                    }
                    sb 
    = sb.Replace(",""", sb.Length - 11);
                    sb.Append(
    "]");
                }
                
                sb.Append(
    "}");
                
    return sb.ToString();
            }
        }
    }
  • 相关阅读:
    java.utils.HashMap数据结构分析(转)
    oracle什么时候须要commit
    CreateFont具体解释
    Java工厂模式
    簡單SQL存儲過程實例
    Cocos2d-x 3.0新引擎文件夹结构
    设计模式之十 适配器模式
    腰围2尺1,2,3,4,5,6,7,8寸各自等于是多少厘米/英寸(对比表)
    iOS 基础函数解析
    内部元素一一相应的集合的算法优化,从list到hashmap
  • 原文地址:https://www.cnblogs.com/zqmingok/p/1702719.html
Copyright © 2011-2022 走看看