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

简介: Json 是什么?一开始在Android,对我来说它是一个有规则个字符串。当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。
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
相关文章
|
JSON Java 数据格式
Json和对象之间转换的封装(Gson)
前段时间由于做spring boot的后端,经常需要进行Json 和对象之间的转换,所以利用Gson结合Kotlin扩展函数的特性封装了两个非常方便的函数,如果是其他语言,也可以封装一下,就是没Kotlin方便了。下面展示一下最终封装效果
212 0
Json和对象之间转换的封装(Gson)
|
1月前
|
JSON Android开发 数据格式
android 使用GSON 序列化对象出现字段被优化问题解决方案
android 使用GSON 序列化对象出现字段被优化问题解决方案
|
3月前
|
JSON Java Android开发
Android网络和数据交互: 请解释Android中的JSON解析库,如Gson。
Android网络和数据交互: 请解释Android中的JSON解析库,如Gson。
24 0
|
4月前
|
JSON 数据格式
gson自定义Type解析json数组字符串
gson自定义Type解析json数组字符串
|
4月前
|
XML JSON Android开发
[Android]使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换
[Android]使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换
54 0
|
6月前
|
JSON 数据格式
Gson转换json数据为HashMap时long类型变为double问题解决
今天再使用Gson处理json数据的时候碰到了一个问题 , 当我使用如下代码解析json数据的时候 , requestTime就变为了double类型
123 0
|
8月前
|
Android开发
Android 中使用Gson进行list集合的序列化与反序列化
Android 中使用Gson进行list集合的序列化与反序列化
101 0
|
8月前
|
JSON Java API
Android 中使用Gson完成对象的序列化与反序列化
Android 中使用Gson完成对象的序列化与反序列化
104 0
|
8月前
|
JSON Java Maven
GSON的用法(处理对象和JSON的相互转化)
GSON的用法(处理对象和JSON的相互转化)
147 0
|
10月前
|
Android开发
Android Retrofit,Gson,Okhttp混淆
Android Retrofit,Gson,Okhttp混淆
316 0