日期:2014-05-16  浏览次数:20789 次

$.getJSON中的data到底怎么写

$.getJSON(
"server.jsp",                 
                "name="+document.getElementById("username").value,//第一句
{"name":document.getElementById("username").value},//第二句
                        //使用以上两句都可以
function(data){
alert(data.id);
}
);

$.getJSON()是发送JSON格式的数据到服务器端,但是为什么我使用第一句在服务器端也能接收到数据呢?还有如果我传递一个JSON数组,在服务器端我该如何获取数据呢?
------解决方案--------------------
那是因为,这是jQuery,兼容各种写法。

name="[{},{}]";  你应该如何处理。    接受到name 后   用java中的 json.parse转一下,然后再处理。
------解决方案--------------------
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
  alert("JSON Data: " + json.users[3].name);
});

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});

getJSON有两种传值方式:1种是以字符串的形式;2种是以json对象的形式
服务器端将接受到是数据json.parse转换下形成数组就好取值了
------解决方案--------------------
JQ的源码中  
$.getJSON  是指向到 $.GET 的
楼主 可以去看看  $.get 是这么处理这个的。。。
------解决方案--------------------
还是从reqeust 获取数组的内容。