2014-09-26 48 views
0

我想创建一个使用杰克逊库JSON格式的cookie。下面是代码。 问题是当我在浏览器中查看cookie值时,我看到 “{\”name \“:\”D \“}”而不是{“name”:“D”}。我尝试设置一个自定义CharacterEscapes与JsonFactory和设置esc ['''] = CharacterEscapes.ESCAPE_NONE,但没有奏效。任何帮助将不胜感激? 顺便说一句我正在使用Tomcat容器进行部署,而CookieContent是一张地图。杰克逊创建cookie

 ObjectMapper om = new ObjectMapper(); 
     om.getFactory().setCharacterEscapes(custom()); 

    Cookie cookie = new Cookie("name", objectMapper.writeValueAsString(cookiesContent)); 
    cookie.setDomain(domain); 
    cookie.setPath("/"); 
    cookie.setMaxAge(Integer.MAX_VALUE); 
    cookie.setSecure(false); 
    response.addCookie(cookie); 

回答

0

HTTP State Management Mechanism specification(与饼干待遇)规定,你不能在cookie的值的双引号字符,除非它包裹了整个事情。

不要(尝试)将JSON放入Cookie中。

+0

不幸的是,这不是一个选项在这一点上。但谢谢你的回复。 – Java 2014-09-26 21:46:13

+0

@Java在cookie中使用有效的JSON(即未转义)也不是一个选项。 – 2014-09-26 21:46:59