我有一個asp.net頁面,它將對象列表作爲json字符串返回給ajax請求。該字符串如下:如何訪問JSON數組格式的字符串
[
{"Name":"Don","Age":23,"Description":"Tall man with no glasses"}
,{"Name":"Charlie","Age":24,"Description":"Short man with glasses"}
]
我想單獨訪問每個字段,喜歡的人,他的年齡,他的描述等
我如何能做到這一點的名字嗎?我正在使用JQuery進行客戶端腳本編寫。
爲了進一步澄清,這裏是服務器端的C#代碼 -
protected void Page_Load(object sender, EventArgs e)
{
if (Request["field1"] != null)
{
createPersonList();
}
}
private void createPersonList()
{
List<Person> PersonList = new List<Person>();
Person Atiq = new Person("Atiq Hasan Mollah", 23, "Whassap Homie");
Person Sajib = new Person("Sajib Mamud", 24, "Chol kheye ashi");
PersonList.Add(Atiq);
PersonList.Add(Sajib);
string json = JsonConvert.SerializeObject(PersonList);
Response.Clear();
Response.Write(json);
Response.End();
}
的客戶端JavaScript代碼如下 -
$(function()
{
$("#SimpleButton").click(function()
{
$.post("Default.aspx", {field1: $("#field1").val()},function(data)
{
data = $.trim(data);
$("#field2").val(data);
var myObject = eval('(' + data + ')');
$(data).each(function(index, person)
{
alert( 'Name: ' + person.Name +
' Age: ' + person.Age +
' Description: ' + person.Description
);
});
});
});
});
現在,如果我不使用「EVAL 「我自己,那我怎麼能通過從服務器端陣列列表,然後解析它使用javascript?
我會建議你避免調用'eval'自己的方法。如果使用jQuery執行AJAX查詢,它將處理將表示JSON編碼對象的服務器響應轉換爲對象本身。 – 2010-03-20 09:59:24
我試圖不使用「eval」。相反,我試圖使用jQuery的「$ .getJSON」方法。但是當服務器返回JSON編碼的字符串時,如果我嘗試訪問它,那麼它會產生一些錯誤。我提供服務器端代碼以及整個客戶端代碼以供進一步說明。 – 2010-03-20 10:07:59
如果你想使用'$ .post'並且仍然讓jQuery自動解析JSON,你可以通過第四個參數來告訴它:'$ .post(「Default.aspx」,{field1:$(「#field1」)) .val()},函數(data){...},「json」);'。我會更新我的答案以反映這一點。 – 2010-03-20 12:49:49