如何生成Google-service.json 文件,新建assert目录和读取以及gson文件解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 如何生成Google-service.json 文件,新建assert目录和读取以及gson文件解析

Json和GSON区别



json是一种数据格式,便于数据传输、存储、交换。

gson是一种组件库,可以把java对象数据转换成json数据格式。


Json是什么



GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。


特点:


快速、高效 代码量少、简洁 面向对象 数据传递和解析方便 创建方式:Gson gson = new gson();


Gson提供了public String toJson(Objcet obj)方法,可以将对象转化为json字符串。 Json是一种数据格式,便于数据传输、存储、交换;

Gson是一种组件库,可以把java对象数据转换成json数据格式。


如何生成Google-service.json 文件。


打开你的fieabase网址:console.firebase.google.com/u/0/

你应该有自己的项目地址。


创建一个新的项目,或者在你已经有的项目中加入新的app都可以。这个gson文件都是根据你的包名去生成的。在一个项目中可以加很多的App生成的json文件是根据项目去生成的,一个项目有多个app,在你生成的json文件中会有不项目中所有app的配置,当一个项目只有一个App的时候,在json文件中只有一个app的配置。


1.新建assert文件目录。


方式很所,在这我仅仅提供最便捷的一种。选中app目录右键, new  ,Floder   ,Assert Floder。这样就行了。


public File [] getAssetPicPath(Context context) {
        AssetManager am = context.getAssets();
        String[] path = null;
        try {
            path = am.list("");  // ""获取所有,填入目录获取该目录下所有资源
        } catch (IOException e) {
            e.printStackTrace();
        }
        File [] pciPaths =new File[11];
        for (int i = 0; i < path.length; i++) {
            if ((path[i].endsWith(".txt") || path[i].endsWith(".jpg")) && path[i].startsWith("sy")) {  // 根据图片特征找出图片
                File file = new File(path[i]);
                pciPaths[i]=file;
            }
        }
        return pciPaths;
    }

2.GSon文件解析:


首先依赖包,在app 的gradle中加入:


compile 'com.squareup.retrofit2:converter-gson:2.2.0'  


String defaultCode = getJson("call2_ad.json", this);
Gson gson = new Gson();
//把JSON格式的字符串转为List
List<CodeBean> list = gson.fromJson(defaultCode, new TypeToken<List<CodeBean>>() {
}.getType());

public static String getJson(String fileName, Context context) {
    //将json数据变成字符串
    StringBuilder stringBuilder = new StringBuilder();
    try {
        //获取assets资源管理器
        AssetManager assetManager = context.getAssets();
        //通过管理器打开文件并读取
        BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName), "utf-8"));
        String line;
        while ((line = bf.readLine()) != null) {
            stringBuilder.append(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return stringBuilder.toString();
}

只要是将assert目录中的文件用assetmanager进行文件解析转换成List就行了。


public class CodeBean {
    private String country_code;
    private List<AdCountBean> ad_count;
    private int start_time;
    private int end_time;
    public String getCountry_code() {
        return country_code;
    }
    public void setCountry_code(String country_code) {
        this.country_code = country_code;
    }
    public List<AdCountBean> getAd_count() {
        return ad_count;
    }
    public void setAd_count(List<AdCountBean> ad_count) {
        this.ad_count = ad_count;
    }
    public int getStart_time() {
        return start_time;
    }
    public void setStart_time(int start_time) {
        this.start_time = start_time;
    }
    public int getEnd_time() {
        return end_time;
    }
    public void setEnd_time(int end_time) {
        this.end_time = end_time;
    }
}

public class AdCountBean {
    /**
     * home : 20
     * exit : 20
     * apply_theme : 20
     * call_deatail : 20
     * cloud : 3
     * theme : 0
     * dialog_time : 30
     * dialog_need_ad : true
     */
    private int home;
    @SerializedName("exit")
    private int exit_;
    private int apply_theme;
    @SerializedName("call_deatail")
    private int call_deatail_;
    @SerializedName("cloud")
    private int cloud_;
    @SerializedName("theme")
    private int theme_;
    @SerializedName("dialog_time")
    private int dialog_time_;
    @SerializedName("dialog_need_ad")
    private boolean dialog_need_ad;
    public int getHome() {
        return home;
    }
    public void setHome(int home) {
        this.home = home;
    }
    public int getExit_() {
        return exit_;
    }
    public void setExit_(int exit_) {
        this.exit_ = exit_;
    }
    public int getCloud_() {
        return cloud_;
    }
    public void setCloud_(int cloud_) {
        this.cloud_ = cloud_;
    }
    public int getDialog_time_() {
        return dialog_time_;
    }
    public void setDialog_time_(int dialog_time_) {
        this.dialog_time_ = dialog_time_;
    }
    public int getApply_theme() {
        return apply_theme;
    }
    public void setApply_theme(int apply_theme) {
        this.apply_theme = apply_theme;
    }
    public int getCall_deatail_() {
        return call_deatail_;
    }
    public void setCall_deatail_(int call_deatail_) {
        this.call_deatail_ = call_deatail_;
    }
    public int getTheme_() {
        return theme_;
    }
    public void setTheme_(int theme_) {
        this.theme_ = theme_;
    }
    public boolean isDialog_need_ad() {
        return dialog_need_ad;
    }
    public void setDialog_need_ad(boolean dialog_need_ad) {
        this.dialog_need_ad = dialog_need_ad;
    }
    @Override
    public String toString() {
        return "AdCountBean{" +
                "home=" + home +
                ", exit=" + exit_ +
                ", apply_theme=" + apply_theme +
                ", call_deatail=" + call_deatail_ +
                ", cloud=" + cloud_ +
                ", theme=" + theme_ +
                ", dialog_time=" + dialog_time_ +
                ", dialog_need_ad=" + dialog_need_ad +
                '}';
    }
}

你自己打印log看看就知道了,这是我目前的理解。



目录
相关文章
|
18天前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
45 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
26天前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
59 8
|
18天前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
28 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
25天前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
48 2
|
17天前
|
JSON 数据格式 计算机视觉
Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)
本文介绍了如何使用OpenCV和Python根据JSON标注文件获取并绘制目标区域,同时可将裁剪的图像单独保存。通过示例代码,展示了如何读取图片路径、解析JSON标注、绘制标注框并保存裁剪图像的过程。此外,还提供了相关的博客链接,供读者进一步学习。
25 0
|
2月前
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
51 1
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
114 2
|
2月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
167 2
|
25天前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
2月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式

推荐镜像

更多