zoukankan      html  css  js  c++  java
  • c#生成json类

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Text;
    using System.Web.Script.Serialization;
    namespace json
    {
        /**//// <summary>
        /// JSONHelper 的摘要说明
        /// </summary>
        public class Json
        {
            public bool success = true;
            public string error = string.Empty;
            public string singleInfo = string.Empty;
            protected System.Collections.ArrayList arrData;
            protected System.Collections.ArrayList arrDataItem;
            public Json()
            {
                arrData = new ArrayList();
                arrDataItem = new ArrayList();
            }

            //重置,每次新生成一个json对象时必须执行该方法
            public void Reset()
            {
                success = true;
                error = string.Empty;
                singleInfo = string.Empty;
                arrData.Clear();
                arrDataItem.Clear();
            }

            /// <summary>
            /// 添加data数组中一个元素(js对象)的一个名值对,例如
            ///对于一个数组元素:{userName:"supNate",userId:"1"}
            ///需执行两次AddItem:
            ///AddItem("userName","supNate");
            ///AddItem("userId","1");
            ///最后执行
            ///ItemOk();
            //表示数组元素添加完毕,底下的AddItem表示另一个数组元素的开始
            /// </summary>
            /// <param name="name"></param>
            /// <param name="_value"></param>

            public void AddItem(string name, string _value)
            {
                arrDataItem.Add(name);
                arrDataItem.Add(_value.Replace("\"", "\\\""));
            }

            //一个数组元素添加完毕(data数组)
            public void ItemOk()
            {
                arrData.Add(arrDataItem);
                arrDataItem = new ArrayList();
            }

            //得到返回的json代码
            public override string ToString()
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("{");
                sb.Append("success:" + success.ToString() + ",");
                sb.Append("error:\"" + error + "\",");
                sb.Append("singleInfo:\"" + singleInfo + "\",");
                sb.Append("data:[");

                for (int i = 0; i < arrData.Count; i++)
                {
                    ArrayList arr = (ArrayList)arrData[i];
                    sb.Append("{");
                    for (int j = 0; j < arr.Count; j += 2)
                    {
                        if (j == arr.Count) break;
                        sb.Append((string)arr[j]);
                        sb.Append(":");
                        sb.Append("\"");
                        sb.Append((string)arr[j + 1]);
                        sb.Append("\"");
                        if (j < arr.Count - 2) sb.Append(",");
                    }
                    sb.Append("}");
                    if (i < arrData.Count - 1) sb.Append(",");
                }
                sb.Append("]");
                sb.Append("}");
                return sb.ToString();
            }
        }
    }

  • 相关阅读:
    C#制作windows屏保实战
    创建一个可以修改不可以删除的文件夹或文件,windows目录和文件权限实测总结
    分享一下我用C#写的贪吃蛇和迷宫
    用C#做的汉诺塔游戏以及对汉诺塔递归的简单理解
    纪念一下即将逝去的flash,曾今的flash入门学习示例《别盯着我》C#版
    C#中关于变量的作用域不易理解的特例
    列出文件夹和遍历文件夹的区别
    怎样创建无法直接删除的文件夹--关于windows权限的迷思
    用C#写的后台整点报时工具
    用C#写差异文件备份工具
  • 原文地址:https://www.cnblogs.com/your568/p/1370808.html
Copyright © 2011-2022 走看看