如何在jsp中显示Json对象

我是jsp的新手。 我有一个JSON编码

 {"eventDetails":[{"startDate":1387175589253,"eventJSON":"{\"userIp\":\"***.***.***.**\",\"organizationUid\":\"4261-5404a609bd14\",\"userAgent\":\"Restlet-Framework\/2.1m3\",\"currentSessionToken\":\"9f3ee5b076-27dbead458ca\",\"endTime\":1312,\"apiKey\":\"b6bd9-30849cf17727\",\"startTime\":13853,\"sessionToken\":null,\"eventId\":\"4731d1-adb6-10faaa3ee269\",\"userUid\":null,\"userId\":1,\"context\":\"\/v2\/account\/loginas\/anonymous\",\"eventName\":\"user-loginAs\"" 

我需要将eventJSON对象显示为原始数据:

 {\"userIp\":\"204.236.177.80\",\"organizationUid\":\"4261739e-ccae-11e1-adfb-5404a609bd14\",\"userAgent\":\"Restlet-Framework\/2.1m3\",\"currentSessionToken\":\"9f3ee54a-4f5f-b076-27d8ca\",\"endTime\":1387175589312,\"apiKey\":\"b6b8-4ad5-96d9-3084927\",\"startTime\":1387175589253,\"sessionToken\":null,\"eventId\":\"478e8-4ed1-adb6-10faaa3ee269\",\"userUid\":null,\"userId\":11878,\"context\":\"\/v2\/act\/lonas\/anonymous\",\"eventName\":\"user-loginAs\"} 

如何使用gson显示eventJSON并使用c:out打印。

JSP页面

               

Java的

  Datalogging[] logevents = (Datalogging[]) gson.fromJson(eventValueList.toString(),Datalogging[].class); 

谢谢阅读。

  1. 你有它像这样的JavaScript变量:

    var persons = [{“name”:“John Doe”,“address”:“Main Street 1”},{“name”:“Jane Doe”,“address”:“Baker Street 1”},{“name” :“Jack Doe”,“地址”:“Church Street 1”}];

我建议使用jQuery从中创建一个HTML表。

    Test     

2.你将它作为Java String变量,如下所示:

 String jsonPersons = "[" + "{ \"name\": \"John Doe\", \"address\": \"Main Street 1\" }," + "{ \"name\": \"Jane Doe\", \"address\": \"Baker Street 1\" }," + "{ \"name\": \"Jack Doe\", \"address\": \"Church Street 1\" }" + "]"; 

然后我建议使用JSON解析器从中获取List,例如Google Gson:

 List persons = new Gson().fromJson(jsonPersons, new TypeToken>() {}.getType()); 

Person类看起来像这样:

 public class Person { private String name; private String address; // Add or generate getters/setters. } 

让servlet将它放在请求范围内并转发到JSP进行显示,如下所示:

 request.setAttribute("persons", persons); request.getRequestDispatcher("/WEB-INF/persons.jsp").forward(request, response); 

在JSP中,使用JSTL迭代它:

 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ...  
${person.name} ${person.address}

3与2)相同,您将它作为Java变量,但您希望通过JSP中的Ajax获取它。 然后创建一个Servlet类,它在doGet()方法中执行以下操作:

 response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); response.getWriter().write(jsonPersons); 

并通过jQuery Ajax调用它,其回调与1)相同。

 $(document).ready(function() { var table = $('
').appendTo($('#somediv')); $.getJSON('url/to/servlet', function(persons) { persons.each(function(i, person) { $('').appendTo(table) .append($('').text(person.name)) .append($('').text(person.address)); }); }); });