【发布时间】:2013-03-26 16:21:45
【问题描述】:
如何反序列化下面的这个json对象?
[{"id":"67","name":"TestString"}]
我尝试在下面执行此操作,但无法成功...
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 对象的方式
[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;
}
【问题讨论】:
-
看起来你可能是服务器端的双重json编码。
-
您是以 JSON 格式还是文本格式检索它?请分享您的 AJAX 调用的其余部分。
-
我正在检索文本
-
与其自己编写 Json(在您的 c# 中)相比,您可能会发现使用 JSON.Net 之类的工具更容易且不易出错:james.newtonking.com/projects/json-net.aspx
-
.net 实际上包含用于处理 json 的类:msdn.microsoft.com/ru-ru/library/…