gson会将int转化为double吗

时间: 2023-08-14 21:07:33 浏览: 54
不会。根据Gson的默认行为,当一个JSON字符串中的数字类型被反序列化时,Gson会将其解析为Java中的Number类型,而不是具体的int或double类型。在Java中,Number类型可以表示所有数字类型,但它没有特定的类型信息。因此,如果你要将一个JSON字符串中的数字类型转换为具体的int或double类型,你需要使用Gson的TypeAdapter或者注册一个适当的TypeAdapterFactory来实现自定义的反序列化逻辑。
相关问题

Kotlin 中 Gson 将int 转为Double 了

在 Kotlin 中使用 Gson 将 int 转换为 double 的情况很少出现。一般情况下,Gson 库会将数值类型转换为相应的类型。例如,int 类型会被转换为整数,double 类型会被转换为浮点数。 但是,如果你遇到了 Gson 将 int 转换为 double 的问题,可能是因为你的 JSON 数据中将 int 类型的值写成了浮点数格式。这种情况下,Gson 将按照浮点数类型进行解析并生成 double 类型的对象。 解决这个问题的方法是在解析时指定正确的类型。例如,你可以使用如下代码将 int 类型的值解析为整数类型: ```kotlin val gson = Gson() val json = "{\"intValue\": 123}" val jsonObject = gson.fromJson(json, JsonObject::class.java) val intValue = jsonObject.get("intValue").asInt ``` 在上面的代码中,我们通过 `asInt` 方法将 `intValue` 字段的值转换为 int 类型。这样就可以确保 Gson 将 int 类型的值正确地解析为整数类型。

kotlin Gson 默认拔int 转为double 如何调整

在 Kotlin 中,Gson 默认将 int 类型转换为 double 类型是因为 JSON 格式中没有 int 类型,只有数字类型。因此 Gson 在解析 JSON 数据时,将所有数字类型都解析为 double 类型。如果你想要将 int 类型保留为 int 类型,可以使用 GsonBuilder 在创建 Gson 对象时设置一个自定义的 TypeAdapter。 以下是一个示例,展示如何将 int 类型保留为 int 类型: ```kotlin val gson = GsonBuilder() .registerTypeAdapter(Int::class.java, object : TypeAdapter<Int>() { @Throws(IOException::class) override fun write(out: JsonWriter, value: Int?) { if (value == null) { out.nullValue() return } out.value(value) } @Throws(IOException::class) override fun read(`in`: JsonReader): Int { if (`in`.peek() == JsonToken.NULL) { `in`.nextNull() return 0 } return try { `in`.nextInt() } catch (e: NumberFormatException) { 0 } } }) .create() ``` 在这个示例中,我们创建了一个 GsonBuilder 对象,并注册了一个自定义的 TypeAdapter。这个 TypeAdapter 用于将 int 类型保留为 int 类型。在 write() 方法中,我们将 int 值写入 JsonWriter。在 read() 方法中,我们从 JsonReader 中读取 int 值。如果值为 null,则写入 null 值。如果读取的值不是 int 类型,则返回默认值 0。 此后,你可以使用这个 Gson 对象将 JSON 数据转换为对象,其中 int 类型将保留为 int 类型。例如: ```kotlin val jsonString = "{\"value\": 42}" val data = gson.fromJson(jsonString, Data::class.java) println(data.value) ``` 这里我们假设你有一个名为 Data 的数据类,它有一个 int 类型的属性 value。在这个示例中,我们将一个包含 int 类型值的 JSON 字符串反序列化为 Data 对象,并输出 value 属性的值。

相关推荐

public void renderJsonpObj(Object json){ String callbackFunctionName = request.getParameter("callback"); try { response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(callbackFunctionName+"("+gson.toJson(json)+")"); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String encodeGet(String str){ if(str!=null){ try { str = new String(str.getBytes("iso8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return str; } public String getRequestEncode(String key){ String str = request.getParameter(key); return encodeGet(str); } public Object getByRequest(Object model){ //Object model = c.getInterfaces(); Class c = model.getClass(); Map<String,String> map = new HashMap(); Map<String,String[]> parammap = request.getParameterMap(); for(Map.Entry<String, String[]> entry:parammap.entrySet()){ String[] value = entry.getValue(); if(value.length==1){ map.put(entry.getKey(),value[0]); } } Field[] fields = c.getDeclaredFields(); try { for(int i=0;i<fields.length;i++){ Field field = fields[i]; field.setAccessible(true); String fname = field.getName(); String mvalue = map.get(fname); if(mvalue != null && !mvalue.equals("") && !mvalue.equals("null")){ String ftype = field.getType().getSimpleName(); if(ftype.equals("String")){ field.set(model, mvalue); }else if(ftype.equals("Integer") || ftype.equals("int")){ field.set(model, Integer.parseInt(mvalue)); }else if(ftype.equals("Double")){ field.set(model, Double.parseDouble(mvalue)); }else if(ftype.equals("Timestamp")){ Timestamp timestamp = Timestamp.valueOf(mvalue); field.set(model,timestamp); } } } }catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return model; }

[[7080393202758320385,"RB01Ps012306300001","C","2023-06-30T11:54:46","730940","2023-06-30T11:54:46","2023-06-30T11:54:46","",738414,715950,"2023-06-30T00:00:00",268.0000000000,268.0000000000,737827,"EQLZ 1100","23FQ11084410",0,10101,10101,0,1.0000000000,1.0000000000,268.0000000000,268.0000000000,100.0000000000,0.0,"0"],[7080393733975310593,"RB01Ps012306300002","C","2023-06-30T11:56:53","730940","2023-06-30T11:56:53","2023-06-30T11:56:53","",738414,715950,"2023-06-30T00:00:00",-268.0000000000,-268.0000000000,737827,"EQLZ 1100","23FQ11084410",0,10101,10101,0,-1.0000000000,-1.0000000000,-268.0000000000,-268.0000000000,100.0000000000,0.0,"0"],[7080751531783356673,"RB01Ps012307010001","C","2023-07-01T11:38:39","730940","2023-07-01T11:38:39","2023-07-01T11:38:39","",738414,715950,"2023-07-01T00:00:00",388.0000000000,288.0000000000,735857,"EQUALIZER 官方 FAULT LESS低帮\"无鞋带\" \"一脚蹬\"反硫化错版鞋 原创帆布鞋板鞋男女运动艹 无中生有","22FSFSL00405",0,10101,10101,0,1.0000000000,1.0000000000,388.0000000000,288.0000000000,74.2268040000,0.0,"0"],[7080756229642912001,"RB01Ps012307010002","C","2023-07-01T11:57:19","730940","2023-07-01T11:57:19","2023-07-01T11:57:19","",738414,715950,"2023-07-01T00:00:00",328.0000000000,328.0000000000,737124,"EQLZ 梭织长裤","23ASLPNW401BL00",0,10101,10101,0,1.0000000000,1.0000000000,328.0000000000,328.0000000000,100.0000000000,0.0,"0"],[7080771963471266049,"RB01Ps012307010003","C","2023-07-01T12:59:50","730940","2023-07-01T12:59:50","2023-07-01T12:59:50","",738414,715950,"2023-07-01T00:00:00",604.0000000000,604.0000000000,737044,"EQLZ 针织复古窄肩背心","23ASJS0KK04OXS0",0,10101,10101,0,1.0000000000,1.0000000000,168.0000000000,168.0000000000,100.0000000000,0.0,"0"],[7080771963471266049,"RB01Ps012307010003","C","2023-07-01T12:59:50","730940","2023-07-01T12:59:50","2023-07-01T12:59:50","",738414,715950,"2023-07-01T00:00:00",604.0000000000,604.0000000000,737041,"EQLZ 针织复古窄肩背心","23ASJS0KK04OM00",0,10101,10101,0,1.0000000000,1.0000000000,168.0000000000,168.0000000000,100.0000000000,0.0,"0"],[7080771963471266049,"RB01Ps012307010003","C","2023-07-01T12:59:50","730940","2023-07-01T12:59:50","2023-07-01T12:59:50","",738414,715950,"2023-07-01T00:00:00",604.0000000000,604.0000000000,737753,"EQLZ 1100","23FQ11010420",0,10101,10101,0,1.0000000000,1.0000000000,268.0000000000,268.0000000000,100.0000000000,0.0,"0"]]通过gson().fromjson转换成对象

最新推荐

recommend-type

rockyou.txt

rockyou
recommend-type

ASP+ACCESS网上人才信息管理系统(源代码+论文)【ASP】.zip

ASP+ACCESS网上人才信息管理系统(源代码+论文)【ASP】
recommend-type

河北金融学院经济大数据课设2024年 软科学校爬虫课设

河北金融学院经济大数据课设2024年 软科学校爬虫课设
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性

![MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性](https://picx.zhimg.com/80/v2-8132d9acfebe1c248865e24dc5445720_1440w.webp?source=1def8aca) # 1. MATLAB结构体基础** MATLAB结构体是一种数据结构,用于存储和组织相关数据。它由一系列域组成,每个域都有一个名称和一个值。结构体提供了对数据的灵活访问和管理,使其成为组织和处理复杂数据集的理想选择。 MATLAB中创建结构体非常简单,使用struct函数即可。例如: ```matlab myStruct
recommend-type

详细描述一下STM32F103C8T6怎么与DHT11连接

STM32F103C8T6可以通过单总线协议与DHT11连接。连接步骤如下: 1. 将DHT11的VCC引脚连接到STM32F103C8T6的5V电源引脚; 2. 将DHT11的GND引脚连接到STM32F103C8T6的GND引脚; 3. 将DHT11的DATA引脚连接到STM32F103C8T6的GPIO引脚,可以选择任一GPIO引脚,需要在程序中配置; 4. 在程序中初始化GPIO引脚,将其设为输出模式,并输出高电平,持续至少18ms,以激活DHT11; 5. 将GPIO引脚设为输入模式,等待DHT11响应,DHT11会先输出一个80us的低电平,然后输出一个80us的高电平,
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

MATLAB结构体与数据库交互:无缝连接数据存储与处理,实现数据管理自动化

![MATLAB结构体与数据库交互:无缝连接数据存储与处理,实现数据管理自动化](https://ww2.mathworks.cn/products/database/_jcr_content/mainParsys/band_1749659463_copy/mainParsys/columns_copy/6d5289a2-72ce-42a8-a475-d130cbebee2e/image_copy_2009912310.adapt.full.medium.jpg/1709291769739.jpg) # 1. MATLAB结构体与数据库交互概述** MATLAB结构体与数据库交互是一种强大的