后台 public string Points
        {
            get
            {
                DataTable dt = ReadGPSTraceData(null, "", 1, "", ""); 
                string json = DataTableToJson(dt, "test");
                return "JSON.parse('" + json + "')[\"test\"];";
            }
        }前台 
        var Point = <%=Points %>
        var Points = [];        for(var i = 2; i < Point.length; i ++)
        {
             var pp = Point[i].GPSData.split(",");
             Points[i-2] =  new GLatLng(parseFloat(pp[0]),parseFloat(pp[1]));
        }
代码在Safari下正常,在ie下面 Point 获取不到数据。

解决方案 »

  1.   

    后台只负责string输出,和前端扯不上关系的。至于json的解析,cyq.data 数据框架的开源版本里有一个JsonHelper类,你可以去学习下。
      

  2.   

    把json 贴出来,那样你的问题会更确。不过“无论如何”应该注意,不要用一堆object弱类型的东西来序列化,应该永远都坚持用强(业务实体)类型的对象集合来序列化,例如“MyGPSTrace[] dt”这一类的强类型数据集合。
      

  3.   

    如果你用强类型,当其中一些object对象有问题时,还没有到序列化那个步骤,你就提前知道问题了。
      

  4.   

    string json = DataTableToJson(dt, "test");
    json 贴出来看看。
      

  5.   


    public string DataTableToJson(DataTable dt, string TableName)
    {
                StringBuilder sb = new StringBuilder();
                StringWriter sw = new StringWriter(sb);
                using (JsonWriter jw = new JsonWriter(sw))
                {
                    JsonSerializer ser = new JsonSerializer();
                    jw.WriteStartObject();
                    jw.WritePropertyName(TableName);
                    jw.WriteStartArray();                foreach (DataRow dr in dt.Rows)
                    {
                        jw.WriteStartObject();                    jw.WritePropertyName("GPSData");
                        ser.Serialize(jw, dr["GPSData"].ToString());
          
                        jw.WriteEndObject();
                    }
                    jw.WriteEndArray();
                    jw.WriteEndObject();
                    sw.Close();
                    jw.Close();
                }
                return sb.ToString();
     }在ie 下面Point.length 读的值是null