1-SIII--Json在Android中的使用--Gson
Json 是什么?
一开始在Android,对我来说它是一个有规则个字符串。
当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。
当接触SpringBoot并上手后,Json又成了url访问后操作数据库返回的数。
到MongoDb后,哪哪都是Json,然后总结:Json是一中非常好用的数据存储格式。
添加依赖:implementation 'com.google.code.gson:gson:2.2.4'
一、根据实体创建Json字符串
1.准备一个实体类:Person:给出字段,get、set、toString方法省略
/**
* 姓名
*/
private String name;
/**
* 生日
*/
private String birthday;
/**
* 年龄
*/
private int age;
/**
* 男吗?
*/
private boolean isMan;
/**
* 主要技能
*/
private List<String> major;
2.使用JSONObject创建json字符串
private static String createJsonByBeanUseGson() {
Person toly = new Person();
toly.setAge(24);
toly.setName("toly");
toly.setBirthday("1994-03-28");
toly.setMan(false);
List<String> major = new ArrayList<>();
major.add("JavaScript");
major.add("Android");
major.add("SpringBoot");
toly.setMajor(major);
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();//美化输出的json格式化
return gsonBuilder.create().toJson(toly);
}
3.可见Json是键值的形式存储数据
{
"age": 24,
"birthday": "1994-03-28",
"isMan": false,
"major": [
"JavaScript",
"Android",
"SpringBoot"
],
"name": "toly"
}
4.自定义键的名称
gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() {
public String translateName(Field field) {
if (field.getName().equals("name")) {
return "NAME";//更改字段名
}
return "z-"+field.getName();
}
});
二、Gson解析Json
Json映射为Java实体
private static Person parseJsonUseGson(String Json) {
Gson gson = new Gson();
return gson.fromJson(Json, Person.class);
}
关于日期
private Date birthday;//将日期改为Date类型
Json中使用字符串XXXX-XX-XX"形式,解析时可自动转换为Date格式
三、Json与网络
Json最广泛的用途是在网络传输数据,具有体积小,JavaScript原生支持的主角光环
拿阿里的号码归属地查询的网站来说:https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=18715078974
返回内容就包括json,我们可以请求网络,获取数据,解析出来,在本地显示。
号码归属地查询项目:详见:基于MVP实现号码归属地查询
后记、
1.声明:
[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力
2.连接传送门:
更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com
3.联系我
QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328
4.欢迎关注我的微信公众号,最新精彩文章,及时送达:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Spring Boot 项目搭建
从根本上来说,Spring Boot的项目只是普通的Spring项目,只是它们正好用到了Spring Boot的起步依赖和自动配置而已。因此,那些你早已熟悉的从头创建Spring项目的技术或工具,都能用于Spring Boot项目。然而,还是有一些简便的途径可以用来开启一个新的Spring Boot项目。 最快的方法就是安装Spring Boot CLI,安装后就可以开始写代码,接着通过CLI来运行就好。 @RestController class HelloController { @RequestMapping("/") def hello() { return "Hello World" } } Spring Boot CLI为Spring Boot提供了快速上手和构建简单原型应用程序的途径。 在正确的生产运行时环境下,它也能用于开发生产应用程序。 尽管如此,与大部分Java项目的开发相比,Spring Boot CLI的流程还是不太符合常规。通常情况下,Java项目用Gradle或Maven这样的工具构建出WAR文件,再把这些文件部署到应用服务器里。所以如果CLI模型让你感到不...
-
下一篇
【Python标准库:fileinput】优雅的读取文件
每当我写个脚本涉及文件输入时,一般写法都是下面这种 import sys file_in = sys.argv[1] for line in open(file_in, 'r'): commands 这个操作有一个缺点就是,如果我想从管道里面传入数据给Python的话,就会报错,因为原代码要求文件而不是标准输入。 这个问题可以通过Python的一个标准库: fileinput进行解决。 import fileinput for line in fileinput.input(): process(line) fileinput.intpu()会帮我们自动处理输入。如果sys.argv[1:]里有输入文件,它就会对里面所有的文件进行遍历,如果sys.argv为空,那么它就会从标准输入sys.stdin里读取输入,如果输入文件的文件名是"-", 同样地会从标准输入里读取输入。这样子就省去了我们自己写条件语句进行判断输入类型。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL数据库在高并发下的优化方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案