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


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

    二、Gson解析Json

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

    三、Json与网络

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

    9414344-576ef3b83c1cd499.png
    号码归属地.png

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


    后记、

    1.声明:

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

    2.连接传送门:

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

    3.联系我

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

    4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
    9414344-c474349cd3bd4b82.jpg
    公众号.jpg
  • 相关阅读:
    函数与递归、第五章习题
    第四章习题continue、break
    程序异常处理
    第一章习题
    第三章习题.split('')
    文本进度条
    字符串处理函数、Unicode
    字符串处理.<方法>()
    springbatch
    卸载gitlab
  • 原文地址:https://www.cnblogs.com/toly-top/p/9781911.html
Copyright © 2020-2023  润新知