mybatis查询返回的map集合转换为JSON,并在外面嵌套相关节点
之前有尝试过用JSONObject.put字符串方法将额外\字符添加到JSON字符串
jsonobject.put(“message”, map);但是最后输出的值却不是想要的JSON字符串,会多出一些转义符,类似下面这种结构:
json object = {"details":"{\"products\":[{\"pid\":\"14\",\"name\":\"zxc\",\"price\":\"123456\"},{\"pid\":\"6\",\"name\":\"Sony Xperia\",\"price\":\"35000\"},{\"pid\":\"8\",\"name\":\"Samsung Galaxy Note\",\"price\":\"32000\"},{\"pid\":\"5\",\"name\":\"htc\",\"price\":\"26326\"},{\"pid\":\"9\",\"name\":\"Nokia Lumia 800\",\"price\":\"18000\"},{\"pid\":\"2\",\"name\":\"iphone\",\"price\":\"12345\"},{\"pid\":\"15\",\"name\":\"sdjnas\",\"price\":\"12243\"},{\"pid\":\"13\",\"name\":\"Samsung S5222\",\"price\":\"6500\"},{\"pid\":\"11\",\"name\":\"Nokia C201\",\"price\":\"4400\"},{\"pid\":\"7\",\"name\":\"Nokia Asha 200\",\"price\":\"4000\"},{\"pid\":\"1\",\"name\":\"htc\",\"price\":\"1234\"},{\"pid\":\"3\",\"name\":\"htc\",\"price\":\"1234\"},{\"pid\":\"4\",\"name\":\"htc\",\"price\":\"1234\"},{\"pid\":\"10\",\"name\":\"aks\",\"price\":\"1234\"},{\"pid\":\"12\",\"name\":\"asd\",\"price\":\"123\"}],\"success\":1}\n"}
测来测去还是直接用fastjson中的JSON.toJSONString()方法最简单直接,将查出来的集合放入map中,再通过fastjson转换,输出的json格式简单明了不容易出错,示例如下:
所需依赖:fastjson*
com.cdxt.his fastjson 1.2.83
import com.alibaba.fastjson.JSON; public static String getSuccessResp(HashMap map){ HashMap map1=new HashMap<>(); HashMap map2=new HashMap<>(); map1.put("data",map); map1.put("code","1"); map1.put("message","成功"); map2.put("response",map1); String resultStr= JSON.toJSONString(map2); return resultStr; }
{"response": {"message": "成功","data": {"item": [{"patient_name": "陆心莲","visit_doctor_name": "张蓉","reg_time": "2020-01-01 14:08:30","reg_level_code": "41ab76501300ee8c69de","register_code": "5fc805cd6e78808132f8","reg_level_name": "副主任医师挂号费","reg_fee": 11,"visit_doctor_code": "10047","reg_state": "1","visit_dept_code": "f48f97b5035b80810094","visit_time": "2020-01-01 14:25:41"}, {"patient_name": "陆心莲","visit_doctor_name": "罗蓉","reg_time": "2020-01-02 15:39:46","reg_level_code": "ddce766e430380816ffc","register_code": "6546e166396d808169db","reg_level_name": "普通门诊挂号费(主治医师)","reg_fee": 9,"visit_doctor_code": "10194","reg_state": "1","visit_dept_code": "f48f97b5035b80810094","visit_time": "2020-01-02 16:02:21"}, {"patient_name": "陆心莲","visit_doctor_name": "罗蓉","reg_time": "2020-01-16 10:03:32","reg_level_code": "ddce766e430380816ffc","register_code": "ac1d0b451f9580815150","reg_level_name": "普通门诊挂号费(主治医师)","reg_fee": 9,"visit_doctor_code": "10194","reg_state": "1","visit_dept_code": "f48f97b5035b80810094","visit_time": "2020-01-16 10:09:42"}]},"code": "1"}}
学习记录,仅供参考,谢谢。。。。
来源地址:https://blog.csdn.net/weixin_49408113/article/details/128871067