android bool转字符串,Android 知识点——当json传入字符串,使用Boolean接收时,GSON会将其转换为false...
先扯两句
写代码吗,大多数情况下还是追求个准确性,可小老儿我却总想着玩的邪的(总不能说是与后台约定好了接口文档,结果他们没按格式传吧,会挨揍的)。怎么判断boolean的都是false,抓一下接口
[图片上传失败...(image-db85ff-1573309702095)]
经过我们友善的沟通,以及付出了两根排骨的代价后,终于成功让后台改了接口,不过还是有所收获的,那就是知道了Gson将String转换为boolean时是不会报错的,特此记录一下。
下面给大家展示个神器,叫附录——目录,好了,闲言少叙,下面进入正题。
正文
@Test
public void jsonTest() {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("aBoolean", true);
jsonObject.put("string", "hasController");
MyChange change = new Gson().fromJson(jsonObject.toString(), MyChange.class);
System.out.println("转换成功 aBoolean = " + change.aBoolean + " ******* string = " + change.string);
} catch (JSONException e) {
e.printStackTrace();
}
}
public class MyChange {
boolean aBoolean;
boolean string = true;
}
可以看到我们用于接收的对象为MyChange,其中的参数 string赋予默认值true,但是在创建的JSONObject 对象中,传入的string,确实“hasController”,一个纯种的字符串。通过Gson转换后,并没有想象中的报出JSONException,反而能够正常输出结果:
结果
有了这个尝试,是不是可以多玩点好玩的呢?
@Test
public void jsonTest() {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("aBoolean", true);
jsonObject.put("string", "hasController");
jsonObject.put("int0", 0);
MyChange change = new Gson().fromJson(jsonObject.toString(), MyChange.class);
System.out.println("转换成功 \n****************************\naBoolean = " + change.aBoolean
+ " \nstring = " + change.string
+ " \nint0 = " + change.int0
+ "\n****************************");
} catch (JSONException e) {
e.printStackTrace();
}
}
public class MyChange {
boolean aBoolean;
boolean string = true;
boolean int0 = true;
}
可惜很遗憾,这次Gson竟然失败了~~~
失败
文字翻译过来就是老子想要bean,你却给老子个NUMBER(别问我为什么用“老子”,没看人家已经大写了吗),之后又若若的试了一下long,得到的还是相同的结果,一片血红啊!
但是,这就想吓退小老儿我吗?那是不可能的,别的不行,但是作死的道路上,必须有我的大脚印,于是就有了这段代码:
@Test
public void jsonTest() {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("aBoolean", true);
jsonObject.put("string", "hasController");
jsonObject.put("param", new Param());
MyChange change = new Gson().fromJson(jsonObject.toString(), MyChange.class);
System.out.println("转换成功 \n****************************\naBoolean = " + change.aBoolean
+ " \nstring = " + change.string
+ " \nparam = " + change.param
+ "\n****************************");
} catch (JSONException e) {
e.printStackTrace();
}
}
public class MyChange {
boolean aBoolean;
boolean string = true;
boolean param = true;
}
private class Param {
}
直接上最负责的java对象试试会是什么结果。
成功了
结论
经测试,除数值的基本类型,其他的类型转换为boolean不会报错,但是都会被转换为false。
PS:如果熟悉Android Junit的朋友可能已经看出来了,这里使用的代码单元测试工具正式Junit中的java test工具,但是如果直接复制代码在自己的Junit中跑很可能会看到如下错误:
在这里插入图片描述
解决这个问题可以查看:Android 知识点——Method put in org.json.JSONObject not mocked
鸣谢:图片提供网站沙沙野
android bool转字符串,Android 知识点——当json传入字符串,使用Boolean接收时,GSON会将其转换为false...相关推荐
- C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中
例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...
- Java json拼接字符串_Java中拼接json格式字符串
如果需要表示的是name-value格式的, 在Java文件中的代码如下: @Override protected void doPost(HttpServletRequest req, HttpSe ...
- C语言编程>第十六周 ⑦ s是全部由小写字母字符和空格字符组成的字符串,由len传入字符串的长度,请补充fun函数,该函数的功能是:统计字符串s中的单词数,结果由变量len传回。
例题:s是全部由小写字母字符和空格字符组成的字符串,由len传入字符串的长度,请补充fun函数,该函数的功能是:统计字符串s中的单词数,结果由变量len传回.每个单词之间都由空格隔开,并且字符串s开始 ...
- android jackson 解析json字符串,android:json解析的两个工具:Gson和Jackson的使用小样例...
1.简单介绍 json是android与server通信过程中经常使用的数据格式,比如.例如以下是一个json格式的字符串: {"address":"Nanjing&qu ...
- 【Android开发】计算机网络基础知识点,如何完成网络请求过程?
(一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- android bool定义,android-R.bool
R.bool R.bool () Bool型资源: 定义布尔值的XML资源. Bool型资源 在XML中定义布尔值. 注意:布尔值是一种简单的资源,使用name属性提供的值来引用这个资源.如,可以把布 ...
- Android中怎获取json,Android应用中如何解析获取的json数据
Android应用中如何解析获取的json数据 发布时间:2020-11-24 17:10:08 来源:亿速云 阅读:107 作者:Leah 这篇文章将为大家详细讲解有关Android应用中如何解析获 ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组...
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
最新文章
- VC++在对话框中加入属性页
- linux命令行 正则,在Linux命令行中使用正则表达式
- 5G 信令流程 — ULCL 插入流程
- 华为高性能服务器刀箱,云平台服务器刀箱
- ASP.NET MVC 使用Log4Net在不同目录中记录不同类型的日志
- 向量除法能用计算机吗,为什么向量没有除法
- Sleutel:密码治理器
- linux连接数问题
- android矩阵计算器
- 太阳系混的最惨行星:被“降级”至今未归队
- 常用网站有哪些,最常用的网站
- jt808终端鉴权_GitHub - SmallChi/JT808: JT808协议、GB808协议、道路运输车辆卫星定位系统-北斗兼容车载终端通讯协议(支持2013、2019版本)...
- ADC和DAC的DNL和INL
- 金三银四跳槽季,java面试突击(100题)进大厂就这么简单
- 非对称加密之公钥密码体系 【五】
- pgpool读写分离,配置设置及调研
- [USACO1.3]虫洞wormhole
- yolov5笔记(2)——训练自己的数据模型(随6.0更新)
- 这是一份价值上千的python数据分析实战
- 区位码、国标码、机内码、GBK