java - 一张地图转 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 字符串保持它们的正常值而不添加一堆转义字符。
解决方案
不要writeValueAsString()
多次调用。将ticketStatus
、tkmTicketList
和searchCriteria
直接插入到地图中。
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);
推荐阅读
- javascript - Google 表格和外部 API
- hyperledger-fabric - 在多通道多链码和多账本 Fabric 网络上访问账本
- java - 如何在构建时从 .class 文件中的 gradle.properties 获取值
- c - 带有 WSL 的 NCurses 不正确地显示框
- .net - Microsoft.Scripting.ArgumentTypeException:预期填充,得到填充
- python - centos安装python3.7时出现的问题
- python - Pyserial 正在从 arduino 获取不一致的数据
- linux - 将目录更改为尾部结果路径的 shell 脚本
- google-pagespeed - 审计和谷歌速度测试的统计数据差异
- tensorflow - 使用 GPU 功能在 tensorflow-hub 上使用 retrain.py 重新训练图像