Double类型输出Json反序列化入库Mongodb变字符串问题解决
2021-06-30 13:52
826 查看
场景
预处理音频数据,生成音频描述文件,文件中含有音频分段信息,需要支持小数,把分段信息写入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
相关文章推荐
- webapi datetime类型序列化成json带T且时间不对问题的解决
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- 后台date类型转换为json字符串时,返回前台页面的是long time值问题解决
- 解决Python自带的json序列化工具不能序列化datetime类型数据问题
- 关于数据序列化(5),定制FastJSON序列化(解决Java大Long类型js的Number接收丢失数据的问题,不序列化某些属性)
- 后台date类型转换为json字符串时,返回前台页面的是long time值问题解决
- "yyyy-MM-dd HH:mm:ss"格式日期字符串 json反序列化成LocalDateTime类型问题
- 后台date类型转换为json字符串时,返回前台页面的是long类型的时间戳问题解决
- 解决Python自带的json不能序列化data,datetime类型数据问题
- C# 实体转成json,其中实体类中有字典Dictionary,遇到的问题,以及最终解决(Json序列化、反序列化之Dictionary 字典类型)
- JavaScriptSerializer 对 DateTime 数据类型的JSON序列化的问题
- 在MasterPage中输出某个控件的Html文本时出现“类型“XX”的控件“XX”必须放在具有 runat=server 的窗体标记内”问题的解决
- 关于在struts2.0中应用json产生类型访问异常问题的解决
- 解决gSOAP开发中的序列化和反序列化类型不匹配的问题(No Deserializer found to deserialize)
- 解决PHP服务端返回json字符串有特殊字符的问题
- MVC5序列化Json时遇到的大小写问题及解决方法
- (转)在VS2005/2008中字符串编码问题的解决及字符串和数值类型常用的转换方法
- 探讨JQUERY JSON的反序列化类 using问题的解决方法
- MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案
- matlab数据类型转换遇到问题,及解决办法,sym,double ,vpa转换