jquery how to deserialize json object
本问题已经有最佳答案,请猛点这里访问。
如何反序列化下面的JSON对象?
1 | [{"id":"67","name":"TestString"}] |
我在下面试着这么做,但没能成功…
1 2 3 4 5 6 7 8 9 10 | success: function (data, status) { $.each(data, function (dt) { var mydata = data.d; alert(mydata); // returns [{"id":"67","name":"TestString"}] $("#txt_speciality").tokenInput("add", mydata.id); }); } |
下面是我创建JSON对象的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [WebMethod] public static string get_specialities(string ProfessionalID) { Database db = DatabaseFactory.CreateDatabase("Connection String2"); DbCommand dbCommand; dbCommand = db.GetStoredProcCommand("Select_Professionals_Speciality"); db.AddInParameter(dbCommand,"prof_id", DbType.Int16, Convert.ToInt16(ProfessionalID)); IDataReader dr = db.ExecuteReader(dbCommand); //[{ id: 3, name:"test3" }] string return_str="["; int i = 0; while (dr.Read()) { if (i > 0) return_str +=","; return_str +="{"id":"" + dr["SpecialtyID"].ToString().Trim() +"","name":"" + dr["SpecialtyName"].ToString().Trim() +""}"; i++; } return_str +="]"; return return_str; } |
您可以使用以下方法进行此操作:
1 2 3 | var mydata; // [{"id":"67","name":"TestString"}] var json = $.parseJSON(mydata); |
json变量将包含反序列化的json对象
我假设这就是您需要的:json.parse(数据)
1 2 3 4 5 6 7 8 9 10 11 | success: function (data, status) { data = JSON.parse(data); $.each(data, function (dt) { var mydata = data.d; alert(mydata); // returns [{"id":"67","name":"TestString"}] $("#txt_speciality").tokenInput("add", mydata.id); }); } |
如果您真的想使用jquery,这里有一个函数,但是任何一个当代的浏览器都有函数
1 | JSON.parse() |
1 | var object = JSON.parse(data); |
现在你可以进入所有的房间了。例如object.id
如果您是以文本形式检索数据,那么它不会在到达时被解析为数组,而是作为字符串。
在你的