110,571
社区成员
发帖
与我相关
我的任务
分享
var format1= @"{{ name:""{0}"",{1}id:""{2}"",parentId:""{3}"",code:'{4}'{5}}}";
return new StringBuilder().AppendFormat(format1,
row["TypeName"],
row["Id"],
row["Id"],
row["Id"],
row["ParentId"],
row["Id"]).ToString();//注意后面还有ToString()
/// <summary>
/// DATATABLE转换为Tree形式的JSON格式
/// </summary>
/// <param name="rows"></param>
/// <returns></returns>
private string DataTableToJson(DataRow[] rows)
{
StringBuilder _sBuild;
var q = rows.Select(row => {
var children = row.Table.Select("ParentId='" + row["Id"] + "'");//查询子节点
var json = @"{{ name:""{0}"",{1}id:""{2}"",parentId:""{3}"",code:'{4}'{5}}}";
_sBuild = new StringBuilder();
return _sBuild.AppendFormat(json,
row["TypeName"],
children.Length > 0 ? " open:false," : "",
row["Id"],
row["ParentId"],
row["Id"],
children.Length > 0 ? ",\n childs: " + DataTableToJson(children) : "" //验证其是否含有子节点,如果存在则递归
).ToString();
});
return "[\n" + string.Join(",\n", q.ToArray()) + "\n]";
}
public static string Format(IFormatProvider provider, string format, params object[] args)
{
if ((format == null) || (args == null))
{
throw new ArgumentNullException((format == null) ? "format" : "args");
}
StringBuilder builder = new StringBuilder(format.Length + (args.Length * 8));
builder.AppendFormat(provider, format, args);
return builder.ToString();
}