2013-03-18 95 views
1

我有一個創建JsonObject的servlet。在JSP中打印JSON對象

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"} 

如何打印整個?由於

回答

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

在這裏,您使用相同的密鑰爲「名」。所以值overriding.Try使用不同的名字,如

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

@Shijuķ巴布沒有你理解這個問題 – PSR 2013-03-18 07:49:54

+1

是。謝謝。但是,如果我想添加許多名稱作爲內部數組呢? – 2013-03-18 07:52:42

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);