2014-09-26 53 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