我試圖填充動態使用$阿賈克斯()方法.... 這裏多選擇框是我的html代碼......如何把JSONArray對象中的JSONObject內的servlet
<select id="imageSize" name="ImageSizeId"></select>
<select id="circulation" name="circulationId"></select>
這是我的servlet代碼.....
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/json;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
JSONObject usesfactors = new JSONObject();
JSONArray jArraysize = new JSONArray();
JSONArray jArraycirculation = new JSONArray();
Statement stmtsize,stmtcirculation;
ResultSet rssize,rscirculation;
int category_id = Integer.parseInt(request.getParameter("CategoryId"));
int format_id = Integer.parseInt(request.getParameter("FormatId"));
String size,display,des;
int sizeid;
try {
if(category_id == 2 && format_id == 201){
// Get image size factors
String sql1="SELECT SizeId,Size FROM Size WHERE Category_id = "+category_id+" AND Format_id = "+format_id+" ";
PreparedStatement ps1 = conn.prepareStatement(sql1);
rssize = ps1.executeQuery() ;
if(rssize!=null){
System.out.println("Not Null");// its printing even if resultset rssize has no records.......why?
while(rssize.next())
{
System.out.println("inside resultset");
JSONObject jobj = new JSONObject();
sizeid = rssize.getInt("SizeId");
size=rssize.getString("Size");
System.out.println(size);
jobj.put("SizeId", sizeid);
jobj.put("Size", size);
jArraysize.add(jobj);
}
usesfactors.put("Size", jArraysize);
rssize.close();
}
else{
System.out.println("Does not have Size factors");
}
// Get image circulation factors
String sql2="SELECT circulationId,circulation FROM Circulation WHERE Category_id = "+category_id+" AND Format_id = "+format_id+" ";
PreparedStatement ps2 = conn.prepareStatement(sql2);
rscirculation = ps2.executeQuery() ;
if(rscirculation!=null){
while(rscirculation.next())
{
JSONObject jobj = new JSONObject();
display = rscirculation.getString("DisplayName");
des=rscirculation.getString("Description");
jobj.put("DisplayName", display);
jobj.put("Description", des);
jArraycirculation.add(jobj);
}
usesfactors.put("Circulation", jArraycirculation);
rscirculation.close();
}
else{
System.out.println("Does not have Circulation factors");
}
out.println(usesfactors);
}
我得到空json的結果....?什麼錯? { 「大小」:[], 「循環」:[]} 我不想執行該語句 「usesfactors.put(」 大小 「jArraysize);」如果結果集rssize爲空,但這個語句被執行,即使結果集rssize沒有記錄.... 總之我希望把JSON對象(usesfactors)JSON陣列(jArraysize)當且僅當結果集rssize有記錄。
最簡單的解釋是,你的sql查詢沒有返回任何東西,但是這裏沒有足夠的信息來肯定地說。 – Thomas
您好托馬斯爵士,條件如果(CATEGORY_ID == 2 && ==業態201)只能返回{循環 「:無論OBJ]},但它返回{」 大小 「:[],」 循環「:[無論OBJ ]} ..我只想{循環}:[無論obj]}作爲結果。我通過執行查詢在mysql工作臺中手動檢查它並返回正確的結果 –