文章目录

  • 1 问题背景
  • 2 问题原因
  • 3 解决方案

1 问题背景

对接支付渠道发起支付的时候,请求参数严格区分下划线格式,笔者使用了@JSONField,但发参数给对方后,对方却反馈没接收到参数或参数值不能为null。

2 问题原因

原因时是笔者的公司对RestTemplate.postForString()做了一层封装。导致用表单传输参数时会将对象转成一个map类型,转的过程中没有对@JSONField(name = "xx_xx")做处理。

3 解决方案

@JSONField是阿里fastjson对JSON的解决方案。因此我们将对象转map的时候,也应该用fastjson提供的方法来转换。如下代码所示:

public class PayRequest {@JSONField(name = "order_no")private String orderNo;@JSONField(name = "last_name")private String lastName;
}
public class Test {public static void main(String[] args) {PayRequest payRequest = new PayRequest();payRequest.setOrderNo("P1001");payRequest.setLastName("zhangsan");Map<String, Object> map = JSON.parseObject(JSON.toJSONString(payRequest));System.out.println(payRequest);System.out.println(map.entrySet());}
}

对象转map导致@JSONField无效相关推荐

  1. 如果要将对象用作Map中的key,需要注意什么

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 本文阅读时间大约5分钟. 参考答案 如果将对象作为Map中的key,需要是实现该对象的equal ...

  2. 总结的一些json格式和对象/String/Map/List等的互转工具类

    总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...

  3. 直接修改html文本页面没变化,VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析...

    本文实例讲述了VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法.分享给大家供大家参考,具体如下: 业务场景 我们在使用vue 编写 代码时,我们有一个 多行文本框控件,希望在页面 ...

  4. java vo转map_Java对象与map对象相互转换

    Java对象与map对象相互转换/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObje ...

  5. java vo转map_javabean实体类对象转为Map类型对象的方法(转发)

    //将javabean实体类转为map类型,然后返回一个map类型的值 public static Map beanToMap(Object obj) { Map params = new HashM ...

  6. java实现对象转换为map、xml字符串转化为map、map转化为xml字符串

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现map使用功能函数:对象转换为map.xml字符串转化为map 1.将对象的所有属性转化为map键值对 2.转换对象为map,并忽略某 ...

  7. jsonobject返回map_如何把JSON对象转为map对象

    如何把JSON对象转为map对象呢? JSON 对象保存在大括号内.就像在JavaScript中, 对象可以保存多个 键/值 对.Map对象保存键/值对,是键/值对的集合.任何值(对象或者原始值) 都 ...

  8. 图片base64转码,本地和网络图片均可,类对象转map,类对象转键值对字符串

     1. 本地图片转换成base64 /*** 本地图片转换成base64字符串** @param imgFile 图片本地路径* @return base64字符串* @author szs* @da ...

  9. Lambda表达式(3)|(List对象转map)

    Lambda表达式(3)|(List对象转map) 文章目录 Lambda表达式(3)|(List对象转map) @[TOC] 前言 一.java8中Lambda是什么? 二.数据准备 1.创建实体 ...

最新文章

  1. Ubuntu16.04默认安装了Python2.7和3.5 升级python3.5为3.6
  2. 镇海区工业机器人与自动化设备_镇海区开展首期“工业机器人操作实训班”蓄力智能制造产业发展...
  3. php webstorm,webstorm和phpstorm的区别
  4. 使用Xpose突破安卓App禁止截屏限制
  5. hdu 5636 Shortest Path(Floyd最短路)
  6. Java重载遇到泛型
  7. sdut 二叉排序树
  8. matlab cam orbit,Matlab的绘图函数
  9. 3-8-循环队列-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
  10. 磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢...
  11. 设备树与驱动的关系_9 Linux设备树的原理与应用实例(一)—— 什么是设备树...
  12. A[1080]Graduate Admission 两个cmp比较函数两个struct结构体
  13. 3DGIS地理信息系统设计方案
  14. POJ 3047 Bovine Birthday 日期定周求 泽勒公式
  15. anaconda配置清华镜像源
  16. 网络信息安全之零信任
  17. 世界上最权威的68句创业名言
  18. OAI搭建 eNB(2018-09最新版)
  19. css 入场动画_CSS3 六边形标题入场动画
  20. muduo网络库:09---多线程服务器之(单线程、多线程服务器的适用场合)

热门文章

  1. xp连接cmcc-auto
  2. HDU 1050 NYOJ 220 Moving Tables
  3. 2022年最新青海机动车签字授权人模拟考试及答案
  4. 【专业数据】七.2020~2022年北京交通大学【计算机技术】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率
  5. 前缀和——(2)二维数组前缀和
  6. STM32的USMART移植
  7. Java 编程开发的30个技巧
  8. 第一本书《瓦尔登湖》
  9. ENJ2005-B 半导体分立器件测试系统
  10. kubernete编排技术六:RBAC权限控制