json 序列化, long->string.
怎么让restcontroller (web 前端调用用的), 转string
内部服务之间 feign接口 不转 。
现在有的feign 接口 直接复用的restcontroller
在Spring框架中,如果你想要让RestController
将long
类型的字段序列化为字符串(String
),同时保持Feign客户端调用内部服务时不进行这种转换,你可以通过以下方式实现:
在RestController
中,你可以使用@JsonSerialize
注解来指定long
字段的序列化方式。这通常是通过自定义的序列化器来实现的。但是,对于简单的long
转String
,你可以直接使用com.fasterxml.jackson.databind.ser.std.ToStringSerializer
。
例如:
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
public class MyDto {
@JsonSerialize(using = ToStringSerializer.class)
private Long myLongField;
// getters and setters
}
这样,当RestController
返回这个DTO时,myLongField
将被序列化为字符串。
对于Feign客户端,默认情况下,它会使用与Spring MVC相同的消息转换器(如Jackson)来反序列化响应。但是,由于你希望内部服务之间的调用不将String
反序列化为long
,你可以:
@JsonSerialize
:这样,Feign客户端将不会看到ToStringSerializer
的指示,并会按默认方式处理JSON(即,将字符串反序列化为字符串)。long
类型,你可以在接收DTO中保留String
字段,并在服务层中进行转换。RestController
,你可以使用不同的DTO类。RestController
的DTO包含使用@JsonSerialize
的long
字段,而Feign客户端的DTO包含String
字段。RestController DTO:
public class MyRestControllerDto {
@JsonSerialize(using = ToStringSerializer.class)
private Long myLongField;
// getters and setters
}
Feign Client DTO:
public class MyFeignClientDto {
private String myLongFieldAsString;
// getters and setters
// 如果需要,可以提供一个方法来获取long值(如果确定字符串可以安全地转换为long)
public long getMyLongField() {
return Long.parseLong(myLongFieldAsString);
}
}
这样,你就可以在RestController
和Feign客户端之间保持不同的序列化/反序列化行为。
问题内容: 每当我尝试序列化文件时,都会收到错误消息:FileNotFound。不知道为什么。这是我的FileHelper代码: 问题答案:
目前,我正在使用Avro1.8.0序列化/反序列化对象,但面临一些问题,特别是java.util.Map对象。不面临其他类型对象的问题。 这里的示例代码- 在deserialize方法中,我试图根据输入数据获取模式,但avro抛出错误- 多谢了。
问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并
主要内容:1 Java序列化和反序列化,2 Java序列化的优点,3 java.io.Serializable接口,4 Java ObjectOutputStream,5 Java ObjectInputStream,6 Java序列化的例子,7 Java反序列化的例子1 Java序列化和反序列化 Java中的序列化是一种将对象状态写入字节流的机制。它主要用于Hibernate,RMI,JPA,EJB和JMS技术。 序列化的反向操作称为反序列化,其中字节流被转换为对象。序列化和反序列化过程与平台
上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能
好的,我做了更改,下面是我得到的JSON响应 它现在导致一个嵌套异常是java.lang.IllegalArgumentException:参数类型不匹配 NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:参数类型不匹配org.springframework.web.servlet.framework.ser