Java 如何使用JSON、JQuery、Servlet获取所有值?

Java 如何使用JSON、JQuery、Servlet获取所有值?,java,jquery,json,jsp,servlets,Java,Jquery,Json,Jsp,Servlets,我尝试使用servlet从数据库中获取值,其中我使用JSON对象将数据发送到我的JSP。在我的JSP中,jQuery处理接收的数据。我能够获取数据,但只是数据库的最后一个值,并非这里的所有值都是我的代码。感谢您的帮助 jQuery: JSP: 当我尝试console.logdata时;结果如下 这里,我只获取列的一个valuelast值,而不是从数据库中获取所有值。如控制台输出所示,您只从servlet中获取一个对象,这就是只显示一个选项的原因 您可以通过同时使用JSONObject和JSONA

我尝试使用servlet从数据库中获取值,其中我使用JSON对象将数据发送到我的JSP。在我的JSP中,jQuery处理接收的数据。我能够获取数据,但只是数据库的最后一个值,并非这里的所有值都是我的代码。感谢您的帮助

jQuery: JSP: 当我尝试console.logdata时;结果如下


这里,我只获取列的一个valuelast值,而不是从数据库中获取所有值。

如控制台输出所示,您只从servlet中获取一个对象,这就是只显示一个选项的原因

您可以通过同时使用JSONObject和JSONArray来构造json

或者,如果您通过在循环中包含逗号并打印对象来修改连接

e、 g.未经测试

JQuery:


您需要检查servlet返回的数据,请通过发出console.logdatat将数据记录到浏览器控制台;在getJSON回调的第一行中。一旦你这样做了,请张贴在这里的结果,如果你需要进一步的帮助。js部分似乎很好,例如,一个包含代码和模拟数据的示例,我试图通过servlet使用JSON对象获取值,当我尝试console.logdata时;上面写着[Object]0:Object stateId:1302 stateName:ssss proto:Object length:1 proto:Array[0]我想我的servlet有问题,你能帮我弄清楚吗谢谢。@3bu1请检查sql查询的结果。如果没有问题,那么使用JSONArray解决方案,如果连接不起作用。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#country_id").change(function() {
   var xyz = $("option:selected").val();
 var Myselect = $('#state_ref');
$.getJSON("../Retrive_country?stateadd_1=none",
    {countryREF : xyz } ,function(data){
   $('#state_ref').empty();

       $.each(data, function(index, state){
            $("<option></option>")
                .attr("value", state.stateId).text(state.stateName)
                .appendTo('#state_ref');
       });   
 });//end get          
   });
});

</script>
String sql1 = "SELECT * FROM state WHERE country_ref="+countryref+"                      
PreparedStatement pst1 = db.getConnection().prepareStatement(sql1);
ResultSet j = pst1.executeQuery();
JSONObject obj = new JSONObject();
              pw.println("[");
while (j.next()) {
    state_id = j.getString(1);
    state = j.getString(2);
    country_ref = j.getString(3);
    obj.put("stateId", state_id);
obj.put("stateName", state);
}
 pw.println(obj);
pw.println("]");
<div class="span2 clear">
<select name="country_id" id="country_id">
<option>-select-</option>


<option id="blabbb">america</option>
<option id="blabbb">UK</option>
<option id="blabbb">Africa</option>

</select></div>

<div class="span2 clear">
<select name="state_ref" id="state_ref">
<option ></option>
</select></div>
JSONObject obj = new JSONObject();
              pw.println("[");
while (j.next()) {
    state_id = j.getString(1);
    state = j.getString(2);
    country_ref = j.getString(3);
    obj.put("stateId", state_id);
obj.put("stateName", state);
 pw.println(obj+",");
}
pw.println("]");
ArrayList<String> statelist = new ArrayList<String>();
            ArrayList<String> stateidlist = new ArrayList<String>();
String sql1 = "SELECT * FROM state WHERE country_ref="+countryref+"                      
PreparedStatement pst1 = db.getConnection().prepareStatement(sql1);
ResultSet j = pst1.executeQuery();
JSONObject obj = new JSONObject();
              pw.println("[");
while (j.next()) {
    state_id = j.getString(1);
    state = j.getString(2);
    country_ref = j.getString(3);
    stateidlist.add(state_id);
                  statelist.add(state);
              }
               obj.put("statelist",statelist);
              obj.put("stateidlist",stateidlist);
pw.println("]");
<script>
$(document).ready(function(){
$("#country_id").change(function() {
   var xyz = $("option:selected").val();
 var Myselect = $('#state_ref');
$.getJSON("../Retrive_country?stateadd_1=none",
    {countryREF : xyz } ,function(data){

     console.log(data);
   $('#state_ref').empty();
       $.each(data, function(index, state){
          for(var prop in state.stateidlist){
              var stateidvalue = state.stateidlist[prop];
              var statelistvalue = state.statelist[prop];
              $("<option></option>")
                .attr("value", stateidvalue).text(statelistvalue)
                .appendTo('#state_ref');

              }

       });   
 });//end get          
   });
});

</script>