如何在下面反序列化这个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;
}
答案 0 :(得分:20)
你可以这样做:
var mydata; // [{"id":"67","name":"TestString"}]
var json = $.parseJSON(mydata);
json变量将包含反序列化的json对象
答案 1 :(得分:5)
我认为这就是你所需要的:JSON.parse(data)
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);
});
}
答案 2 :(得分:2)
如果你真的想使用jQuery,here is the function但是,任何当代浏览器都有功能
JSON.parse()
答案 3 :(得分:0)
答案 4 :(得分:0)
var object = JSON.parse(data);
现在你可以访问所有的属性了。例如object.id