转 JSONString,java,json"/>

首页 > 解决方案 > 一张地图转 JSONString

问题描述

             ObjectMapper mapper = new ObjectMapper();

         searchCriteria.put(TICKET_STATUS_LIST,
                 mapper.writeValueAsString(ticketStatus));

         String ticketListJson = mapper.writeValueAsString(tkmTicketList);
         String searchCrteriaJson = mapper
                 .writeValueAsString(searchCriteria);

         Map<String, Object> ticketSearchResult = new HashMap<String, Object>();

         ticketSearchResult.put("ticketListJson", ticketListJson);
         ticketSearchResult.put("searchCriteriaJson", searchCrteriaJson);
         ticketSearchResult.put("count", iResultCt);

         return mapper.writeValueAsString(ticketSearchResult);

我遇到了这个令人愉快的代码,问题是搜索条件和ticketListJson 最终被视为字符串,所以我得到了一个糟糕的json:

{"count":7,"searchCriteriaJson":"{\"startRecord\":0,\"sortOrder\":\"DESC\",\"ticketStatus\":\"[\\\"Any\\\"]\",\"pageSize\":10,\"sortBy\":\"Default\",\"customer\":1599}","ticketListJson":"[{\"id\":\"30\",\"subject\":\"Test\",\"number\":\"TIC-30\",...

我怎样才能让这些内部 json 字符串保持它们的正常值而不添加一堆转义字符。

标签: javajson

解决方案


不要writeValueAsString()多次调用。将ticketStatustkmTicketListsearchCriteria直接插入到地图中。

ObjectMapper mapper = new ObjectMapper();

searchCriteria.put(TICKET_STATUS_LIST, ticketStatus);

Map<String, Object> ticketSearchResult = new HashMap<String, Object>();

ticketSearchResult.put("ticketListJson", tkmTicketList);
ticketSearchResult.put("searchCriteriaJson", searchCriteria);
ticketSearchResult.put("count", iResultCt);

return mapper.writeValueAsString(ticketSearchResult);

推荐阅读