在JSP中打印JSON对象

时间:2013-03-18 07:40:20

标签: json jsp

我有一个创建JsonObject的servlet。

JsonObject jsonObject=new JsonObject();
jsonObject.addProperty("name", "john");
jsonObject.addProperty("name", "Smith");
jsonObject.addProperty("name", "Ram");

HttpSession session=request.getSession(true);
session.setAttribute("jsonObject", jsonObject);
RequestDispatcher rd = request.getRequestDispatcher("viewpage.jsp");
rd.forward(request, response);

这是我的JSP页面

<%@page import="com.google.gson.JsonObject"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>View Json</title>
<%
JsonObject jsonObject=(JsonObject)session.getAttribute("jsonObject");
%>

</head>
<body>
<h6>JSON View</h6>
<br>
<%=jsonObject%>
</body>
</html>

但是当我运行这个时,JSP文件只打印最后一个数据。以下是输出

JSON View


{"name":"Ram"}

我怎么打印整个?感谢

2 个答案:

答案 0 :(得分:1)

jsonObject.addProperty("name", "john");
jsonObject.addProperty("name", "Smith");
jsonObject.addProperty("name", "Ram");

这里你使用相同的键作为“名称”。因此值是重写。尝试使用不同的名称,如

jsonObject.addProperty("name1", "john");
jsonObject.addProperty("name2", "Smith");
jsonObject.addProperty("name3", "Ram");

答案 1 :(得分:1)

您可以尝试创建JsonArray。 喜欢这个

    JsonArray arr = new JsonArray() ;
JsonObject obj1 = new JsonObject()
obj1 .addProperty("name", "john");

JsonObject obj2 = new JsonObject()
obj2 .addProperty("name", "smith");

JsonObject obj3 = new JsonObject()
obj3 .addProperty("name", "ram");

arr.add(obj1);
arr.add(obj2);
arr.add(obj3);