1-SIII--Json在Android中的使用--Gson

mac2022-06-30  144

Json 是什么?
一开始在Android,对我来说它是一个有规则个字符串。 当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。 当接触SpringBoot并上手后,Json又成了url访问后操作数据库返回的数。 到MongoDb后,哪哪都是Json,然后总结:Json是一中非常好用的数据存储格式。 添加依赖:implementation 'com.google.code.gson:gson:2.2.4'
一、根据实体创建Json字符串
json生成.png
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(); } }); 自定义键名.png

二、Gson解析Json

Json映射为Java实体
private static Person parseJsonUseGson(String Json) { Gson gson = new Gson(); return gson.fromJson(Json, Person.class); } Json解析.png
关于日期
private Date birthday;//将日期改为Date类型 Json中使用字符串XXXX-XX-XX"形式,解析时可自动转换为Date格式 日期.png

三、Json与网络

Json最广泛的用途是在网络传输数据,具有体积小,JavaScript原生支持的主角光环 拿阿里的号码归属地查询的网站来说:https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=18715078974 返回内容就包括json,我们可以请求网络,获取数据,解析出来,在本地显示。

号码归属地.png

号码归属地查询项目:详见:基于MVP实现号码归属地查询


后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明 [2]欢迎广大编程爱好者共同交流 [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 [4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈 我的github地址:欢迎star 简书首发,腾讯云+社区同步更新张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002 邮箱:1981462002@qq.com 微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg

转载于:https://www.cnblogs.com/toly-top/p/9781911.html

最新回复(0)