当前位置: 首页 > wzjs >正文

网站运营专员主要做什么淄博网站建设铭盛信息

网站运营专员主要做什么,淄博网站建设铭盛信息,豪车网站建设背景,怎么给网站加速在 Java 后端开发中,可能会遇到前后端交互过程中 Long 类型精度丢失的问题。尤其是在 JavaScript 中,由于其 Number 类型是双精度浮点数,超过 16 位的 Long 类型值就会发生精度丢失。 问题背景 假设有如下实体类: public class…

在 Java 后端开发中,可能会遇到前后端交互过程中 Long 类型精度丢失的问题。尤其是在 JavaScript 中,由于其 Number 类型是双精度浮点数,超过 16 位的 Long 类型值就会发生精度丢失。

问题背景

假设有如下实体类:

public class TemplateValue implements Serializable {private Long colHeadId;private Long rowHeadId;private String val1;private String val2;
}

这在后端没有问题,但如果前端直接接收这个数据,colHeadId rowHeadId 可能会在 JS 中出现精度问题,比如:

{"colHeadId": 1234567890123456789
}
1234567890123456770  // 精度丢失!

解决方案:Long 类型转 String 传给前端

为了解决这个问题,我们需要在序列化时将 Long 类型转成 String,即使用:

@JsonSerialize(using = ToStringSerializer.class)

同时,前端传来的 String 要转回 Long 怎么办?

这就是本文的重点!序列化做了,反序列化没做,就会出现类型转换失败或数据无法接收的问题。

那么我们需要自定义一个反序列化器,将前端传来的 String 自动转成 Long 类型。

实现步骤

1.创建自定义反序列化器 ToLongDeserializer

可以放在工具类里

package com.yourproject.util;import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;public class ToLongDeserializer extends JsonDeserializer<Long> {@Overridepublic Long deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {String value = p.getText();try {return value != null ? Long.parseLong(value) : null;} catch (NumberFormatException e) {throw new IOException("Invalid long value: " + value, e);}}
}
2. 在实体类上使用序列化 & 反序列化注解
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yourproject.util.ToLongDeserializer;public class TemplateValue implements Serializable {@JsonSerialize(using = ToStringSerializer.class)@JsonDeserialize(using = ToLongDeserializer.class)private Long colHeadId;@JsonSerialize(using = ToStringSerializer.class)@JsonDeserialize(using = ToLongDeserializer.class)private Long rowHeadId;private String val1;private String val2;
}

这样,在前后端交互时就能做到:

  • 后端返回数据时将 Long -> String,避免精度丢失;

  • 后端接收前端数据时将 String -> Long,方便业务逻辑处理。

总结

前后端交互中,涉及 Long 类型字段时:

  • 必须序列化为 String,@JsonSerialize(using = ToStringSerializer.class),避免前端精度丢失

  • 如果需要将数据回传给后端,必须反序列化为 Long,创建自定义反序列化器,确保后端能正常接收

http://www.dtcms.com/wzjs/584494.html

相关文章:

  • 博物馆网站建设依据上海办公室设计装修公司
  • 上海市建设资格注册中心网站咸阳建设局网站
  • 国内精美网站界面网址《30天网站建设实录》
  • 新密做网站wordpress数据库重置
  • 北外网院网站建设作业企业网络规划毕业设计
  • 网站后台如何登陆城市文明建设网站
  • 企业网站建设包含哪些内容微餐饮网站建设官网
  • 网站验证码代码网站mp3播放器代码
  • 网站推广的常用方法有哪些北京seo全网营销
  • 搜索引擎排名公司网站关键词优化长春市城乡建设局网站
  • 平凉公司网站建设网络课程网站开发过程
  • 伍佰亿网站建设在安徽省住房和城乡建设厅网站
  • 当阳市住房和城乡建设局网站wordpress 运行天数 小工具
  • 徐州公司网站建设个人网页设计作品论文
  • 西安企业网站建设代理机构八年级微机网站怎么做
  • 广州网站建设说说外链的建设文创设计网站
  • 网站建设丨找王科杰效果好用视频做影视的网站
  • 长春网站优化咨询WordPress防js注入
  • 搜索网站有哪些手机网站 免费
  • 网站设计制作公司地址手机网站开发教程pdf
  • 安徽飞亚建设网站htm网站制作
  • 中国建设监理协会网站继续教育吉首公司网站找谁做
  • 建站的公司wordpress收款生成源码
  • 专做淘宝的网站一个公司网站开发多少钱
  • 秀网站实体店怎么推广引流
  • 无锡好的网站公司网站流量共享
  • 做T恤卖网站wordpress 主题 最简单
  • 广州中学生网站制作怎么做网站主
  • 百度恶意屏蔽网站重庆建设工程网站
  • 高校部门网站建设网络营销公司都做什么的