通过fastjson将Long类型转换成String类型

后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况。例如:201511200001725439这样一个Long类型的整数,传给前端后会变成201511200001725440

解决方法:

  方法一:在后台将这个Long类型的字段转换成String类型的,风险比较大。

  方法二:使用fastjson的提供的注解,@JSONField(serializeUsing= ToStringSerializer.class)

备注:  

  fastjson在com.alibaba.fastjson.serializer包下面提供了多种数据类型转换的注解。

  自己也可以拓展这些注解,通过实现ObjectSerializer接口来完成。

  ToStringSerializer的代码:

public class ToStringSerializer implements ObjectSerializer {

    public static final ToStringSerializer instance = new ToStringSerializer();

    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                      int features) throws IOException {
        SerializeWriter out = serializer.out;

        if (object == null) {
            out.writeNull();
            return;
        }

        String strVal = object.toString();
        out.writeString(strVal);
    }

}
时间: 2024-11-07 06:02:40

通过fastjson将Long类型转换成String类型的相关文章

Clob类型转换成String类型

oracle中表结构如下: create table GRID_RESOURCE ( ID VARCHAR2(50), CNNAME VARCHAR2(50), TYPE VARCHAR2(50), PARENTID VARCHAR2(50), VIEWWIDTH VARCHAR2(50), REQUESTURL VARCHAR2(256), COUNTSQL CLOB, ISDISPLAY VARCHAR2(50), TREEINDEX VARCHAR2(256), TABLES VARCHA

oracle.sql.Clob类型转换成String类型

方法一: public String ClobToString(Clob clob) throws SQLException, IOException { String reString = ""; Reader is = clob.getCharacterStream();// 得到流 BufferedReader br = new BufferedReader(is); String s = br.readLine(); StringBuffer sb = new StringBu

int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();

//int.double.boolean.char.float.long.Object类型数据转换成String //int类型转换成String类型 int h=123456; String l=String.valueOf(h); System.out.println("int类型转换成String类型:"+l); //double类型转String double a=1.1; String A=String.valueOf(a); System.out.println("

C#String类型转换成Brush类型

C#String类型转换成Brush类型: using System.Windows.Media; BrushConverter brushConverter = new BrushConverter(); Brush brush = (Brush)brushConverter.ConvertFromString(“#cacaca”); 注意: using System.Windows.Media;时如果出现错误,是因为没有引入PresentationCore 解决方案资源管理器->右击引用->

关于SpringMVC中如何把查询数据全转成String类型

之前,本想与客户商量做几张固定的报表予使用,结果发现客户每个月都需要各种各样的报表,所以我们做了个窗口用于直接执行SQL语句:数据量一开始并不是很大查询出来的数据较少(约1-6W左右),所以刚开始几个月很好用,查询出来的数据直接从页面复制下来贴到Excel做月报表,就这样一年过去了,最近做三期,发现运维人员月底几天特别的忙,数据逾百万(汗),SQL查询语句都要写n多分页.... 伙伴们如此幸苦,还是我来拯救他们吧- 我的解决思路大致如下: A>界面增加查询倒出Excel表按钮(不需要分页,也不需

加法将 number 类型 转换成 string 类型

python也不是没有缺点在性能方面就Java.C++等老前辈还是没得比的,另外python和nodejs一样只能使用CPU单核,也是性能方面影响是因素之一. 发现只有A线程打印了"A",并没有发现B线程和C线程打印字符串:(.难道是A线程更改了Integer对象的值,而B线程和C线程并没有"看到"更新后的值?于是,在线程类的run方法的while循环中增加代码如下 在ABP里,一个应用服务应当实现IApplicationService接口,为每个应用服务创建一个接

编程题:为枚举类型变量赋值。将整型值强制类型转换成枚举类型赋值

编程题:为枚举类型变量赋值.将整型值强制类型转换成枚举类型赋值 #include<stdio.h> void main() { enum season {spring,summer,autumn,winter}s1,s2; s1=summer; s2=(enum season)2; printf("s1=%d,s2=%d\n",s1,s2); } 编程题:为枚举类型变量赋值.将整型值强制类型转换成枚举类型赋值,布布扣,bubuko.com

Java 把long 转换成 日期 再转换成String类型

1 /** 2 * 把long 转换成 日期 再转换成String类型 3 */ 4 public String transferLongToDate(String dateFormat, Long millSec) { 5 SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); 6 Date date = new Date(millSec); 7 return sdf.format(date); 8 } 上面是方法   第一个参数:da

基本类型转换成NSNumber类型

int i=100; float f=2.34; NSNumber *n1=[NSNumber numberWithInt:i]; NSNumber *n2=[NSNumber numberWithFloat:f] 将NSNumber类型转换成基本类型 i=[n1 intvalue] f=[n2 floatValue];