Double类型输出Json反序列化入库Mongodb变字符串问题解决
作者:互联网
场景
预处理音频数据,生成音频描述文件,文件中含有音频分段信息,需要支持小数,把分段信息写入manifest文本文件中去,当我们创建数据处理任务批次的时候,我们会解析manifest文件中的信息,原封不动的写入到mongodb中去,前端在加载的时候从mongo中拉取基础信息
问题
前端拉取的音频分段为字符串类型,这里不符合我们的预期
定位
生成的mainfest的jsonline是没有双引号的,在预处理的环节应当是没有任何问题的,由于问题很大可能出现在创建批次,加上批次创建是通用功能,无法直接用pojo类直接转换初始结果,这里统一使用JSONObject来识别,存入mongoDb也是直接存入JsonObject的,这里考虑fastjson在反序列化jsonline的时候出的问题,调试一下代码,发现fastJson在反序列化的时候,数字变成了BigDecimal类型
解决
int disableDecimalFeature = JSON.DEFAULT_PARSER_FEATURE & ~Feature.UseBigDecimal.getMask();
JSON.parseObject(content, ManifestFile.class, disableDecimalFeature);
参考链接:
记录一次alibaba.fastjson,Double类型被转换为BigDecimal类型解决方法:https://blog.csdn.net/Jeremykim1026/article/details/102784658
标签:disableDecimalFeature,分段,批次,Double,音频,Json,类型,序列化 来源: https://www.cnblogs.com/surging-dandelion/p/14954129.html