前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-SIII--Json在Android中的使用--Gson

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

作者头像
张风捷特烈
发布2018-09-29 11:15:42
2.2K0
发布2018-09-29 11:15:42
举报
Json 是什么?
代码语言:javascript
复制
一开始在Android,对我来说它是一个有规则个字符串。
当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。
当接触SpringBoot并上手后,Json又成了url访问后操作数据库返回的数。
到MongoDb后,哪哪都是Json,然后总结:Json是一中非常好用的数据存储格式。
代码语言:javascript
复制
添加依赖:implementation 'com.google.code.gson:gson:2.2.4'
一、根据实体创建Json字符串

json生成.png

1.准备一个实体类:Person:给出字段,get、set、toString方法省略
代码语言:javascript
复制
    /**
     * 姓名
      */        
    private String name;
    /**
     * 生日
     */
    private String birthday;
    /**
     * 年龄
     */
    private int age;
    /**
     * 男吗?
     */
    private boolean isMan;
    /**
     * 主要技能
     */
    private List<String> major;
2.使用JSONObject创建json字符串
代码语言:javascript
复制
 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是键值的形式存储数据
代码语言:javascript
复制
{
   "age": 24,
   "birthday": "1994-03-28",
   "isMan": false,
   "major": [
     "JavaScript",
     "Android",
     "SpringBoot"
   ],
   "name": "toly"
 }
4.自定义键的名称
代码语言:javascript
复制
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实体
代码语言:javascript
复制
private static Person parseJsonUseGson(String Json) {
    Gson gson = new Gson();
    return gson.fromJson(Json, Person.class);
}

Json解析.png

关于日期
代码语言:javascript
复制
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

号码归属地查询项目:详见:

本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Json 是什么?
  • 一、根据实体创建Json字符串
    • 1.准备一个实体类:Person:给出字段,get、set、toString方法省略
      • 2.使用JSONObject创建json字符串
      • 3.可见Json是键值的形式存储数据
      • 4.自定义键的名称
      • 二、Gson解析Json
        • Json映射为Java实体
          • 关于日期
          • 三、Json与网络
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档