【问题标题】:JSP Servlet Ajax Call (MVC) Iterate through JSON ObjectsJSP Servlet Ajax 调用 (MVC) 遍历 JSON 对象
【发布时间】:2018-12-05 12:27:39
【问题描述】:
$(document).ready(function() {       
        $.get("/myServlet", function(responseJson) {                 
            var $container = $("#mySpace");
            var x = "";

            $.each(responseJson, function(key,value) {  
                var object = JSON.stringify(value);

                x+= " . "+object+"<br>";
             });
            $container.append(x);


        });
    });

//- -------------------------------------------------------- -- Servlet ---------- ----

   protected void doGet(HttpServletRequest request, HttpServletResponse 
 response) throws ServletException, IOException {

  ArrayList<Students> list = new ArrayList<>();

  Student s = new Student();
  s.setid(1);
  s.setName("john");
  s.setYear(5.5);

  Student s1 = new Student();
  s1.setid(2);
  s1.setName("alice");
  s1.setYear(5.5);

  Student s2 = new Student();
  s2.setid(3);
  s2.setName("nami");
  s2.setYear(3.5);

  list.add(s);
  list.add(s1);
  list.add(s2);

        String json = new Gson().toJson(list);
         response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(json);

}

我在 javascript 中的 x 产生了这个。即使我尝试访问对象["id"] 例如 x+= " . "+object["id"]+"
";我不能。它说未定义。对此有何建议?或者我应该使用我在此创建的学生模型? (不知道如何)

容器的输出:

。 {"id":1,"name":"john","year":5.5}

。 {"id":2,"name":"alice","year":5.5}

。 {"id":3,"name":"nami","year":3.5}

【问题讨论】:

  • 试试这个 sn-p 可能会帮助你。 $.each(responseJson, function(key,value) { var object = JSON.parse(value); x+= " . "+object.id+"&lt;br&gt;"; });
  • @Veeresh 嗨,谢谢您的回复。什么都没有显示。猜猜有错误 - JSON 中出现意外的令牌 o。
  • 好的。我已经更新了我的答案。你可以试试吗?
  • 因为stringify,需要解析json而不是转成字符串..

标签: javascript json ajax jsp servlets


【解决方案1】:

希望这会奏效。

$(document).ready(function() {          
        $.get("/myServlet", function(responseJson) {
        var $container = $("#mySpace");
        var x = "";
        var jsonData = JSON.parse(responseJson);
                $.each(jsonData, function(key,value) { 
                    x+= " . "+value.id+" "+value.name+" "+value.year+"<br>";
                 });
                 console.log(x);
                 $container.append(x);
          });
    });

【讨论】:

  • 显然在 var jsonData = JSON.parse(responseJson); 上有错误
猜你喜欢
  • 1970-01-01
  • 2011-06-11
  • 2015-01-11
相关资源
最近更新 更多