map集合转为JSON字符串

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*

<dependency>
    <groupId>com.cdxt.his</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.83</version>
</dependency> 
  import com.alibaba.fastjson.JSON;
   /**
     * 封装转换json之前的map数据--成功
     */
    public static  String  getSuccessResp(HashMap<String,Object> map){
        HashMap<String ,Object> map1=new HashMap<>();
        HashMap<String ,Object> 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"
	}
}

学习记录,仅供参考,谢谢。。。。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值