전체 코드는 아래에 게시되어 있습니다. 답글에 있는 친구들의 코드를 읽었기 때문에 많은 우회 작업을 거쳤습니다. 지금 생각해보면 그렇게 번거로울 필요는 없습니다.
백엔드
public string GetFirJson()
{
string mystr = "[";
DataTable dt = DBUtility.db.ExecuteTable("select * from class where parientid=0") ;
int a = dt.Rows.Count;
for (int i = 0; i <= dt.Rows.Count - 1; i )
{
mystr = GetOtherJson(Convert.ToInt32(dt.Rows[i]["classid"].ToString())) ",";
}
mystr = mystr.Substring(0, mystr.Length - 1) ;
mystr = "]";
mystr = mystr.Replace("'", """);
return mystr;
}
//Recursive
개인 문자열 GetOtherJson (int pid)
{
DataTable dt = DBUtility.db.ExecuteTable("select * from class where classid=" pid);
string strjson = ""
bool haschild = IsHasChild(pid );
strjson = "{";
strjson = "'id':'" pid "',"
strjson = "'text':'" dt.Rows[0]["classname "].ToString() "',";
strjson = "'value':'" dt.Rows[0]["classid"].ToString() "',";
strjson = " ' showcheck':true," ;
strjson = " 'complete':true,";
strjson = "'checktate':0,";
strjson = "'hasChildren':" haschild.ToString( ).ToLower() " ,";
strjson = "'ChildNodes':";
if (!IsHasChild(pid))
{
strjson = "null}";
else
{
strjson = "[";
DataTable mydt = DBUtility.db.ExecuteTable("select * from class where parientid=" pid) for (int i = 0 ; i <= mydt .Rows.Count - 1; i )
{
strjson = GetOtherJson(Convert.ToInt32(mydt.Rows[i]["classid"].ToString())) "," ;
}
strjson = strjson.Substring(0, strjson.Length - 1)
strjson = "]}"
return strjson; private bool IsHasChild(int pid )
{
DataTable dt = DBUtility.db.ExecuteTable("select * from class where parientid=" pid)
if (dt.Rows.Count == 0)
{
return false
}
else
{
return true
}
}
결국 누구나 할 수 있습니다. 그냥 데이터베이스를 구축하세요. 형님, 불공평해 주셔서 다시 한번 감사드립니다.