Java使用JSON传递字符串注意事项解析

作者:一只爱阅读的程序员 时间:2021-11-05 13:35:37 

一、问题由来

项目开发中,由于实际需要将某一个功能模块抽取成了一个单独的服务,其他地方需要调用的时候,通过Spring提供的RestTemplate类发送请求进行调用。

经过测试这种方法完全可行,我和同事都能够正常使用,可是有一次调用一个方法时始终出现问题。调用方的参数可以正常传递,可是被调用方却使用匹

配不上,寻找了很久都没找到原因。

二、问题分析

问题主要在传递的invoType参数上,在被调用方一直匹配不上,两边都是使用switch语句进行匹配,数据类型为String类型,调用方的switch语

句可以正常匹配,可是在被调用却始终匹配不上,于是就执行了默认的default语句。并且被调用方也正常的接收到了invoType的值;

调用方传参:

Java使用JSON传递字符串注意事项解析

被调用方获取参数;

Java使用JSON传递字符串注意事项解析

正常来说不应该出现这样的问题,既然被调用方能获取到数据,那就说明数据传输没有问题,那到底是哪里出问题了呢?

经过反复排查,打印最终找到问题的原因,打印输出的结果如下:

Java使用JSON传递字符串注意事项解析

输出的结果中,传递的字符串两边多了两个双引号因此导致出现问题,不能正确匹配。由于输出的字符串,最开始看到的时候也没在意,忽略了一点

直接输出字符串时,变量的值两边是没有双引号的。

Java使用JSON传递字符串注意事项解析

那我这个调用方法中,双引号的字符串是哪来的呢?是我在传递字符串的数据时使用JSON处理过。方法中调用的fastJson中的toJSONString()方法,

这样在处理字符串的时候,就多了一对双引号,最终导致后去到的参数不正确不能正常调用。

Java使用JSON传递字符串注意事项解析

三、解决方案

找到真正的问题后,解决办法就非常好办,对于单个字符串参数,直接传递就行不需要将其转换为JSON数据进行传递。

来源:https://www.cnblogs.com/yilangcode/p/13738288.html

标签:Java,JSON,字符串
0
投稿

猜你喜欢

  • 使用java从乱码文本中解析出正确的文本

    2023-12-03 12:10:22
  • Unity实现攻击范围检测并绘制检测区域

    2023-09-18 21:59:10
  • java创建子类对象设置并调用父类的变量操作

    2023-10-13 18:16:13
  • Java中集合和数组的排序方式小结

    2023-08-25 00:52:10
  • springboot 整合hbase的示例代码

    2023-02-11 19:35:20
  • Java高性能序列化工具Kryo详情

    2021-11-02 16:42:00
  • Spring Data JPA映射自定义实体类操作

    2022-10-17 10:08:55
  • java文件操作输入输出结构详解

    2023-07-30 21:48:30
  • SpringBoot 自定义starter yaml提示失效问题及解决方法

    2022-08-03 14:58:42
  • C#开发Windows UWP系列之布局面板RelativePanel

    2023-04-11 12:28:29
  • SpringBoot2使用Jetty容器操作(替换默认Tomcat)

    2023-11-24 01:17:15
  • Java求最小生成树的两种算法详解

    2023-11-10 07:21:24
  • 如何利用java控制鼠标操作一些重复的事情

    2021-11-12 12:54:02
  • java使用Feign实现声明式Restful风格调用

    2023-01-22 08:18:05
  • Java 如何实现一个http服务器

    2022-03-27 05:40:04
  • Spring JDBCTemplate原理及使用实例

    2023-03-11 09:47:19
  • 浅谈基于SpringBoot实现一个简单的权限控制注解

    2022-01-23 16:42:47
  • Java通过What、Why、How了解弱引用

    2021-11-01 00:06:20
  • Java线程池ThreadPoolExecutor原理及使用实例

    2022-04-30 05:53:00
  • java自定义ClassLoader加载指定的class文件操作

    2022-03-16 16:19:07
  • asp之家 软件编程 m.aspxhome.com