using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
/// <summary>
/// JSONHelper 的摘要说明/// </summary>
public class DTreeJSONHelper
{
//对应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();
protected System.Collections.ArrayList arrDataItem = new ArrayList();
public DTreeJSONHelper()
{
}
//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成员
public bool success
{
get
{
return _success;
}
set
{
//如设置为true则清空error
if (success) _error = string.Empty;
_success = value;
}
}
//对应于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();
arrDataItem.Clear();
}
public void AddItem(string name, string value)
{
if (name == "leaf" && value=="1")
{
value = "true";
arrData.Add("" + name + ":" + "" + value + "");
}
else if (name == "leaf" && value == "0")
{
value = "false";
arrData.Add("" + name + ":" + "" + value + "");
}
else if (name == "checked" || name == "disabled") //是否选中
{
arrData.Add("" + name + ":" + "" + value + "");
}
else
{
arrData.Add("" + name + ":"" + "" + value + """);
}
}
public void ItemOk()
{
arrData.Add("<BR>");
//返回总记录条数 totlalCount++;
}
//序列化JSON对象,得到返回的JSON代码
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
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 - 1, 1);
sb.Append("},");
if (index < arrData.Count)
{
sb.Append("{");
}
}
}
sb = sb.Replace(",", "", sb.Length - 1, 1);
sb.Append("");
}
sb.Append("]");
return sb.ToString();
}
}
//使用案例
public string GetDTreeSelectInfo(int pareid, string dno)
{
DTreeJSONHelper json = new DTreeJSONHelper();
string jsons = "";
json.success = true;
ds = dao.GetDTreeInfo(pareid, dno);
//如果记录集中对象个数大于0个 if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
int length = dno.Length;
for (int i = 0; i <= length; i++)
{
if (dr["dno"].ToString() == dno.Substring(0, i))
{
json.AddItem("id", dr["DID"].ToString());
json.AddItem("parentid", dr["PareID"].ToString());
json.AddItem("text", dr["DNAME"].ToString());
json.AddItem("leaf", dr["Leaf"].ToString());
//json.AddItem("checked", "false");
json.AddItem("Image", dr["Image"].ToString());
json.AddItem("dno", dr["dno"].ToString());
json.AddItem("remark", dr["remark"].ToString().Fileter());
json.AddItem("Person", dr["Person"].ToString());
json.AddItem("Telephone", dr["Telephone"].ToString());
json.AddItem("Address", dr["Address"].ToString());
json.AddItem("DepCompName", dr["DepCompName"].ToString());
json.ItemOk();
}
}
if (dr["dno"].ToString().Length > length)
{
json.AddItem("id", dr["DID"].ToString());
json.AddItem("parentid", dr["PareID"].ToString());
json.AddItem("text", dr["DNAME"].ToString());
json.AddItem("leaf", dr["Leaf"].ToString());
json.AddItem("dno", dr["dno"].ToString());
//json.AddItem("checked", "false");
json.AddItem("Image", dr["Image"].ToString());
json.AddItem("remark", dr["remark"].ToString());
json.AddItem("Person", dr["Person"].ToString());
json.AddItem("Telephone", dr["Telephone"].ToString());
json.AddItem("Address", dr["Address"].ToString());
json.AddItem("DepCompName", dr["DepCompName"].ToString());
json.ItemOk();
}
}
jsons = json.ToString();
}
else
{
jsons = @"{success:false}";
}
return jsons;
}
public string GetDTreeInfo(int pareid,string dno)
{
DTreeJSONHelper json = new DTreeJSONHelper();
string jsons = "";
json.success = true;
ds = dao.GetDTreeInfo(pareid,dno);
//如果记录集中对象个数大于0个 if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
int length = dno.Length;
for (int i = 0; i <=length;i++)
{
if (dr["dno"].ToString() == dno.Substring(0, i))
{
json.AddItem("id", dr["DID"].ToString());
json.AddItem("parentid", dr["PareID"].ToString());
json.AddItem("text", dr["DNAME"].ToString());
json.AddItem("leaf", dr["Leaf"].ToString());
//json.AddItem("checked", "false");
if (!string.IsNullOrEmpty(dr["Image"].ToString()))
{
json.AddItem("Image", dr["Image"].ToString());
}
else
{
json.AddItem("Image", "kls_01.gif");
}
//json.AddItem("dno", dr["dno"].ToString());
json.AddItem("remark", dr["remark"].ToString().Fileter());
json.AddItem("Person", dr["Person"].ToString());
json.AddItem("Telephone", dr["Telephone"].ToString());
json.AddItem("Address", dr["Address"].ToString());
json.AddItem("DepCompName", dr["DepCompName"].ToString());
json.AddItem("SMSAccount", dr["SMSAccount"].ToString());
json.AddItem("SMSPassword",dr["SMSPassword"].ToString());
json.AddItem("EmailHost", dr["EmailHost"].ToString());
json.ItemOk();
}
}
if (dr["dno"].ToString().Length > length)
{
json.AddItem("id", dr["DID"].ToString());
json.AddItem("parentid", dr["PareID"].ToString());
json.AddItem("text", dr["DNAME"].ToString());
json.AddItem("leaf", dr["Leaf"].ToString());
//json.AddItem("dno", dr["dno"].ToString());
if (!string.IsNullOrEmpty(dr["Image"].ToString()))
{
json.AddItem("Image", dr["Image"].ToString());
}
else
{
json.AddItem("Image", "kls_01.gif");
}
//json.AddItem("checked", "false");
json.AddItem("remark", dr["remark"].ToString());
json.AddItem("Person", dr["Person"].ToString());
json.AddItem("Telephone", dr["Telephone"].ToString());
json.AddItem("Address", dr["Address"].ToString());
json.AddItem("DepCompName", dr["DepCompName"].ToString());
json.AddItem("SMSAccount", dr["SMSAccount"].ToString());
json.AddItem("SMSPassword", dr["SMSPassword"].ToString());
json.AddItem("EmailHost", dr["EmailHost"].ToString());
json.ItemOk();
}
}
jsons = json.ToString();
}
else
{
jsons = @"{success:false}";
}
return jsons;
}