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();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!