JSON转Map的坑
项目场景:
调用另一个服务的数据接口,用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的坑相关推荐
- 使用Gson解析Json为Map对象探索(下)
使用Gson解析Json为Map对象探索(下) 下面来说说其中出现的问题 1.如何获取一个list列表 1.1首先是数据格式 1.2处理成列表的代码 com.google.gson.Gson gson ...
- Go 学习笔记(20)— Go 操作 json 文件(编码生成 json、解码 json 为 map、解码 json 为 struct)
1. Json 概述 Go 语言对于标准格式的编码和解码都有良好的支持,由标准库中的 encoding/json . encoding/xml . encoding/asn1 等包提供支持并且这类包都 ...
- Java json转Map,转bean,转Listbean
引用jackson /** * json转Map,转bean,转List<bean> by http://blog.csdn.net/21aspnet/ * 需要jackjson jar包 ...
- GO语言中json与map的转换
直接上代码(需要引入encoding/json包) // 当前程序的包名 package main// 导入其它的包 import ("encoding/json""fm ...
- 通过输入流获取的xml格式字符串转为json和map格式
通过输入流获取的xml格式字符串转为json和map格式 xml格式字符串转json格式代码: try {//通过输入流获取xml格式字符串数据ServletInputStream inputStre ...
- 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 ...
- java解析json转Map
前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下: 1.单节点单层级.单节点多层级json转map import java.util.ArrayLi ...
- 转:json与map互转
转自: java中字符串,json,Map互相转换(各种转换都有)_蜗牛驿站-CSDN博客_java json转map前提:使用jar包为fastjsonimport com.alibaba.fast ...
- golang利用json.Unmarshal转json为map、slice类型
利用json.Unmarshal转json为map类型 package mainimport ("encoding/json""fmt" )func main( ...
最新文章
- 英文构词法 —— ant、ent 后缀
- memkind版本查看_QQ 20周年来啦!扫码查看你的回忆
- 公布自己的pods到CocoaPods trunk 及问题记录
- P5355-[Ynoi2017]由乃的玉米田【莫队,bitset,根号分治】
- 计算机硬件检测维修资料,计算机硬件检测维修实训台 Computer hardware detection and maintenance training bench...
- 微信公众号的文章中添加历史文章链接
- maven 加入第三方库_添加第三方库到Maven资源库
- 孤读Paper——《CenterNet:Objects as Points》
- Qt QTreeView 详解
- PS CS6启动“不能打开暂存盘文件”的解决方法
- 10-5 查询选修张老师讲授所有课程的学生
- NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media
- YUVPlayer: 基于Android平台的YUV视频原始数据播放器
- 使用vue-preview 缩略图预览 完美解决
- 微信小程序能给花店带来哪些作用_分享花店微信小程序开发优势
- Cache 的地址映像方式(4种)
- 思维导图超级学习力提升宝典
- WPF将控件保存为图片
- Python编程题:用户登录,三次机会后锁定
- mysql 操作xm_Python操作MySQL数据库实例详解
热门文章
- 为什么说 Bert 大力出奇迹
- 51单片机实现c语言字母滚动,使用51单片机实现点阵汉字平滑滚动显示
- Android O 和 iOS 11 新功能对比
- uniapp中的input,输入input回车事件和输入input事件
- 股票公式成功率测试软件,上百组数据测试,高成功率的启动点,选股公式源码分享...
- java 线程 并发_多线程高并发编程总结
- python批量旋转图片
- 【计算机网络】同步和异步
- 游戏玩家的饕餮盛宴:雷神5周年多款新品惊艳亮相
- android将彩图转为黑白_[Android学习笔记九] Android 开发中图片灰阶(黑白)显示...