我正在使用jsp。 我的jsp看起来像......
<%@page import="net.ion.ice.sp.shard.session.SessionManager"%>
<%@page import="net.ion.ice.sp.common.bean.user.Customer"%>
<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%>
<%
Customer customer = SessionManager.getSessionUser(request.getParameter("session_id")) ;
out.println(customer.getSessionDataMap()) ;
%>
很简单。这段代码应该打印java Map<String, Object>
Object。
通常工作正常,但有时会打印JSON
方式(意思是kolon连接)。
我期望的结果是
{default={CREATED={date=21, day=1, hours=11, minutes=10, month=2, nanos=0, seconds=13, time=1458526213000, timezoneOffset=-540, year=116}}}
有时会返回
{default={CREATED={"date":21,"day":1,"hours":11,"minutes":10,"month":2,"nanos":0,"seconds":13,"time":1458526213000,"timezoneOffset":-540,"year":116}}}
您可以看到某些字符串与:
相关联,但另一种情况则与=
相关联。
我不知道是什么造成了不同。 感谢。
答案 0 :(得分:0)
您可以将Arrays#toString()与地图中的条目集一起使用,以获得整齐打印的地图:
ifx-dto\target\index-generator-related-temp-classes
对于以下地图:
out.println(Arrays.toString(customer.getSessionDataMap().entrySet().toArray()));
这会产生以下输出:
Map<String, String> map = new HashMap<>();
map.put("one", "first value");
map.put("two", "second value");
map.put("three", "third value");
System.out.println(Arrays.toString(map.entrySet().toArray()));
请注意,如果您想维护密钥的广告订单顺序,可以考虑使用[two=second value, one=first value, three=third value]
代替LinkedHashMap
。