后台变量jsondata
public  StringBuilder jsondata =new StringBuilder("{\"ClassRoot\":[");
  protected void Page_Load(object sender, EventArgs e)
    {
        db.initDB();
        ds = db.QueryData("select * from tb_bigClass order by bClassID", "bigclass");
        if (ds.Tables["bigclass"] != null)
        {
            bigclass = ds.Tables["bigclass"];
            if (bigclass.Rows.Count > 0)
            {
                for (int i = 0; i < bigclass.Rows.Count; i++)
                {
                    jsondata.Append("{\"bClassID\":" + bigclass.Rows[i][0].ToString() + ",\"bClassName\":\"" + bigclass.Rows[i][1].ToString() + "\",\"son\":[");
                    int bclassid = i + 1;
                    ds = db.QueryData("select * from tb_smallClass where bClassID=" + bclassid + " order by sClassID", "smallclass");
                    if (ds.Tables["smallclass"].Rows.Count > 0)
                    {
                        for (int j = 0; j < ds.Tables["smallclass"].Rows.Count; j++)
                        {
                            if (j == ds.Tables["smallclass"].Rows.Count - 1)
                            {
                                jsondata.Append("{\"sClassID\":" + ds.Tables["smallclass"].Rows[j][0].ToString() + ",\"sClassName\":\"" + ds.Tables["smallclass"].Rows[j][1].ToString() + "\"}");
                            }
                            else
                            {
                                jsondata.Append("{\"sClassID\":" + ds.Tables["smallclass"].Rows[j][0].ToString() + ",\"sClassName\":\"" + ds.Tables["smallclass"].Rows[j][1].ToString() + "\"},");
                            }
                        }
                        jsondata.Append("]");                    }
                    else
                    {
                        jsondata.Append("\"none\"]");
                    }                    if (i == bigclass.Rows.Count - 1)
                    {
                        jsondata.Append("}");
                    }
                    else
                    {
                        jsondata.Append("},");
                    }
                }
            }
            jsondata.Append("]}");
        }
    }前台js调用<script type="text/javascript">
var json=<%=jsondata%>;
alert(json);
 for( var j in json ) { alert(json[b].bClassName); } 
     </script>

解决方案 »

  1.   

    普通字符串是对的,json字符串的问题。请教如何处理,第一次传json
      

  2.   

    解决,要var json='<%=jsondata%>';加单引号。 字符串加双引号
      

  3.   

    <script type="text/javascript">
    var js=<%=jsondata%>;
    var json = eval(js);
     for( var j in json ) { alert(json[b].bClassName); } 
         </script>
      

  4.   

    传递json到前台js,下面是完全正确的了
        <script type="text/javascript">
        var jsondata='<%=jsondata%>';
           var json = eval(jsondata);
           for( var j in json ) { alert(json[j].bClassName); } 
         </script>
    希望对初学者能帮助下:)
      

  5.   

    我在json里面用了双引号。所以呢在传回前台时,没转义就给变量,所以出错。谢谢各位。结贴