I cannot succeed to deserialize JSON object passed from c# code behind. I have been working on this 3 hours and couldn't understand the reason.
Here is my json object creation
struct specialitiy_struct {
public int id;
public string name;
};
[WebMethod]
public static string get_specialities(string ProfessionalID)
{
Database db = DatabaseFactory.CreateDatabase("Connection");
DbCommand dbCommand;
dbCommand = db.GetStoredProcCommand("Select_Profes_Speciality");
db.AddInParameter(dbCommand, "prof_id", DbType.Int16, Convert.ToInt16(ProfessionalID));
IDataReader dr = db.ExecuteReader(dbCommand);
List<specialitiy_struct> my_list = new List<specialitiy_struct>();
specialitiy_struct my_speciality;
while (dr.Read()) {
my_speciality = new specialitiy_struct();
my_speciality.id = Convert.ToInt16(dr["SpecialtyID"].ToString().Trim());
my_speciality.name = dr["SpecialtyName"].ToString().Trim();
my_list.Add(my_speciality);
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(my_list);
}
and here is jquery code which deserialize the json object
$.ajax({
type: "POST",
url: "NotificationSettings.aspx/get_specialities",
data: "{'ProfessionalID':'" + <%= Session["ProflId"].ToString().Trim() %> + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status) {
$.each(data, function (dt) {
var mydata = data.d;
var obj = $.parseJSON(mydata);
$("#txt_speciality").tokenInput("add", { name: obj.name, id: obj.id});
});
}
});
The returned json object is this
d: "[{"id":67,"name":"Kardiyoloji"},{"id":1,"name":"Acil Tip"}]"
I cannot deserialize the json object properly, please help me to do it?
d: "[{"id":67,"name":"Kardiyoloji"},{"id":1,"name":"Acil Tip"}]"Does not look like valid json to me.{ d: [{"id":67,"name":"Kardiyoloji"},{"id":1,"name":"Acil Tip"}] }would be more appropriate