对于jquery来说,如果指明返回的数据是json,那么在数据返回到页面是,jquery会把数据转变成对象或者是对象数组:
我在服务器端json格式的数据组织如下:此时返回到页面是是一个对象数组
package bean;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import db_jb.Car;
public class Dao {
public static String getJson(String cartype)
{
StringBuffer json=new StringBuffer();
Car car=new Car();
Session session=util.HibernateSessionFactory.getSession();
Query query=session.createQuery("from Car where cartype='"+cartype+"'");
List list=query.list();
json.append("[");
for(int i=0;i<list.size();i++)
{
car=(Car)(list.get(i));
String wheelvalue=car.getWheelvalue();
String wheeltype=car.getWheeltype();
if(i<list.size()-1)
{
json.append("{\"wheelvalue\":\""+wheelvalue+"\",\"wheeltype\":\""+wheeltype+"\"},");
}
else
{
json.append("{\"wheelvalue\":"+"\""+wheelvalue+"\""+",\"wheeltype\":"+"\""+wheeltype+"\""+"}");
}
}
json.append("]");
util.HibernateSessionFactory.closeSession();
System.out.print(json);
return json.toString();
}
}
相应的jquery代码如下:
$(document).ready(function(){
var select2=$("#wheeltype");
$("#cartype").change(function(){
$("#wheeltype [value!=NULL]").remove();
var optionvalue=$("#cartype :selected").val();
if(optionvalue=="NULL"){
select2.hide();
}
else
{
$.post("wheel.do",{cartype:optionvalue},function(data){
for(i=0;i<data.length;i++)
{
$("<option value='"+data[i].wheelvalue+"'>"+data[i].wheeltype+"</option>")
.appendTo(select2);
}
select2.show();
},"json");
}
});
});
如果是一个单独的对象,那么它的格式就是{key:value............},就是最外层的是2个大括号!!