首先我们先看一个东西让大家有个想法:
context.Response.ContentType = "text/plain";
List<Person> list = new List<Person>();
Person p1 = new Person();
p1.Name = "张三1";
p1.Age = 20;
Person p2 = new Person();
p2.Name = "张三2";
p2.Age = 23;
// list.Add(p1);
list.Add(p2);
//将对象转化成Json字符串
string output = JsonConvert.SerializeObject(list);
string output = JsonConvert.SerializeObject(p1);
string output = JsonConvert.SerializeObject(list);
string output = JsonConvert.SerializeObject(p1);这个地方只是一个简单的对象不同,但是我们在前台要得其json数据就是两种不同的现象。
$.getJSON(
"handlerjson.ashx",
function(json){
$.each(json,function(i){
alert(i);
$("#cat-list").append("<li>name:"+json[i].Name+" Age:"+json[i].Age+"</li>");
});
});
1、如果是list则alert为0,如果是p1则会弹出两次,分别为Name,Age。
为p1的json数据:{"Name":"张三1","Age":20}
为list的json数据:[{"Name":"张三2","Age":23}]
也就是说,如果是对象或者是list这两都生成的json数据是不同的,虽然里面都只有一个对象,但是list会封装成一个对象数组,而对象会把所有属性封装一个数组。