项目场景:

调用另一个服务的数据接口,用json格式传回数据。

问题描述:

使用map类型接收查回来的数据,使用时报错:
org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Null key for a Map not allowed in JSON

        public static <T> Map<String,T> parseResponseResultMap(String responseStr,Class<T> clazz){Map<String,T> resultMap = new HashMap<>();if(!StringUtils.isEmpty(responseStr)){ResponseResult responseResult = JSONObject.parseObject(responseStr,ResponseResult.class);if(responseResult!=null){Integer code = responseResult.getCode();Object data = responseResult.getData();if("200".equals(code)){resultMap = JSON.parseObject(data.toString(),Map.class);}}}return resultMap;}

原因分析:

转map后无法直接用,还要处理map的value。


解决方案:

对map的value做循环处理后再返回

        public static <T> Map<String,T> parseResponseResultMap(String responseStr,Class<T> clazz){Map<String,T> map = Collections.emptyMap();if(!StringUtils.isEmpty(responseStr)){ResponseResult responseResult = JSONObject.parseObject(responseStr,ResponseResult.class);if(responseResult!=null){Integer code = responseResult.getCode();Object data = responseResult.getData();if("200".equals(code)){map = JSON.parseObject(data.toString(),new TypeReference<Map<String,T>>(){});}}}Map<String,T> finalMap = new HashMap<>();map.forEach((k,v)->finalMap.put(k,JSON.parseObject(v.toString(),clazz)));return finalMap;}

JSON转Map的坑相关推荐

  1. 使用Gson解析Json为Map对象探索(下)

    使用Gson解析Json为Map对象探索(下) 下面来说说其中出现的问题 1.如何获取一个list列表 1.1首先是数据格式 1.2处理成列表的代码 com.google.gson.Gson gson ...

  2. Go 学习笔记(20)— Go 操作 json 文件(编码生成 json、解码 json 为 map、解码 json 为 struct)

    1. Json 概述 Go 语言对于标准格式的编码和解码都有良好的支持,由标准库中的 encoding/json . encoding/xml . encoding/asn1 等包提供支持并且这类包都 ...

  3. Java json转Map,转bean,转Listbean

    引用jackson /** * json转Map,转bean,转List<bean> by http://blog.csdn.net/21aspnet/ * 需要jackjson jar包 ...

  4. GO语言中json与map的转换

    直接上代码(需要引入encoding/json包) // 当前程序的包名 package main// 导入其它的包 import ("encoding/json""fm ...

  5. 通过输入流获取的xml格式字符串转为json和map格式

    通过输入流获取的xml格式字符串转为json和map格式 xml格式字符串转json格式代码: try {//通过输入流获取xml格式字符串数据ServletInputStream inputStre ...

  6. json map java_Java:JSON和Map相互转换

    Java:JSON与Map相互转换 需要jar包:jackson-core-2.6.0.jar,jackson-databind-2.6.0.jar,jackson-annotations-2.6.0 ...

  7. java解析json转Map

    前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下: 1.单节点单层级.单节点多层级json转map import java.util.ArrayLi ...

  8. 转:json与map互转

    转自: java中字符串,json,Map互相转换(各种转换都有)_蜗牛驿站-CSDN博客_java json转map前提:使用jar包为fastjsonimport com.alibaba.fast ...

  9. golang利用json.Unmarshal转json为map、slice类型

    利用json.Unmarshal转json为map类型 package mainimport ("encoding/json""fmt" )func main( ...

最新文章

  1. 英文构词法 —— ant、ent 后缀
  2. memkind版本查看_QQ 20周年来啦!扫码查看你的回忆
  3. 公布自己的pods到CocoaPods trunk 及问题记录
  4. P5355-[Ynoi2017]由乃的玉米田【莫队,bitset,根号分治】
  5. 计算机硬件检测维修资料,计算机硬件检测维修实训台 Computer hardware detection and maintenance training bench...
  6. 微信公众号的文章中添加历史文章链接
  7. maven 加入第三方库_添加第三方库到Maven资源库
  8. 孤读Paper——《CenterNet:Objects as Points》
  9. Qt QTreeView 详解
  10. PS CS6启动“不能打开暂存盘文件”的解决方法
  11. 10-5 查询选修张老师讲授所有课程的学生
  12. NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media
  13. YUVPlayer: 基于Android平台的YUV视频原始数据播放器
  14. 使用vue-preview 缩略图预览 完美解决
  15. 微信小程序能给花店带来哪些作用_分享花店微信小程序开发优势
  16. Cache 的地址映像方式(4种)
  17. 思维导图超级学习力提升宝典
  18. WPF将控件保存为图片
  19. Python编程题:用户登录,三次机会后锁定
  20. mysql 操作xm_Python操作MySQL数据库实例详解

热门文章

  1. 为什么说 Bert 大力出奇迹
  2. 51单片机实现c语言字母滚动,使用51单片机实现点阵汉字平滑滚动显示
  3. Android O 和 iOS 11 新功能对比
  4. uniapp中的input,输入input回车事件和输入input事件
  5. 股票公式成功率测试软件,上百组数据测试,高成功率的启动点,选股公式源码分享...
  6. java 线程 并发_多线程高并发编程总结
  7. python批量旋转图片
  8. 【计算机网络】同步和异步
  9. 游戏玩家的饕餮盛宴:雷神5周年多款新品惊艳亮相
  10. android将彩图转为黑白_[Android学习笔记九] Android 开发中图片灰阶(黑白)显示...