我的技術博客(α)

概述

本次團隊項目做業我主要負責的是 Android 端的文本讀取以及和服務器交互的部分。因爲以前對 Android 一無所知,因此花了很長時間來了解和熟悉。Android 自己也比較複雜,對於一個不懂 Java 的初學者來講感受不是很友好。以前的很長一段時間都在學習和了解,到後來嘗試多了才初有眉目。如下是我在完成項目的過程當中學到的東西,大部分來自網絡,同窗也幫了我很大的忙。具體內容整理以下。html

具體內容

Visual Studio Code 編輯博客併發送到 Cnblogs

以前在博客園寫博客一直都是在 VS Code 上寫好,粘貼過去,很繁瑣,修改也很麻煩,一直在找能夠直接發佈到博客園的方法。有一些方法能夠發佈可是不支持 markdown,因此一直沒找到好的辦法。在剛開始寫這篇博客時,恰好要找一個插件,就順手在商店裏搜了一下 cnblog,剛好搜到這個插件,很是好用,能夠說是十分偶然了,感謝這爲做者。安裝方法以下。
在 VS Code 的插件商店搜索 WriteCnblog,點擊安裝。具體使用方法在做者的博客能夠查看。用vscode寫博客和發佈
做者還有另一篇文章,講如何製做插件。vscode編寫插件詳細過程java

Json 本地文件讀取

Android 常常會用 Json 傳數據,因此讀取本地 Json 的功能十分必要,雖然不是很複雜,可是我也花了點時間來了解和嘗試,記錄下方法以備往後查閱。json

public static String getJson(Context mContext, String fileName) {
    ///將json數據變成字符串
    StringBuilder stringBuilder = new StringBuilder();
    //獲取assets資源管理器
    AssetManager assetManager = mContext.getAssets();
    try {
        //獲取assets資源管理器
        //AssetManager assetManager = mContext.getAssets();
        //經過管理器打開文件並讀取
        BufferedReader bf = new BufferedReader(new InputStreamReader(
                assetManager.open(fileName)));
        String line;
        while ((line = bf.readLine()) != null) {
            stringBuilder.append(line);
        }
    } 
    catch (IOException e) {
        e.printStackTrace();
    }
    return stringBuilder.toString();
}

Gson 解析 Json

Gson 簡介

Gson(又稱 Google Gson)是 Google 公司發佈的一個開放源代碼的 Java 庫,主要用途爲序列化 Java 對象爲 JSON 字符串,或反序列化 JSON 字符串成 Java 對象。而 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,普遍應用於各類數據的交互中,尤爲是服務器與客戶端的交互。visual-studio-code

Gson 的用法

Gson 提供了 fromJson()toJson() 兩個直接解析和生成 Json 的方法。而且能夠重載。api

基本類型解析

Gson gson = new Gson();
int i = gson.fromJson("100", int.class);              //100
double d = gson.fromJson("\"99.99\"", double.class);  //99.99
boolean b = gson.fromJson("true", boolean.class);     // true
String str = gson.fromJson("String", String.class);   // String

基本類型生成

Gson gson = new Gson();
String jsonNumber = gson.toJson(100);       // 100
String jsonBoolean = gson.toJson(false);    // false
String jsonString = gson.toJson("String"); //"String"

POJO 類的生成和解析

本次的項目就用到了這個方法。服務器

public class GsonRead {
    public String Title;
    public String Auther;
    public String Text;

    public static List getGson(String jsonString, String Title, String Auther, String Text) {
        Gson gson = new Gson();
        GsonRead gsonRead = gson.fromJson(jsonString, GsonRead.class);
        Title = gsonRead.Title;
        Auther = gsonRead.Auther;
        Text = gsonRead.Text;
        System.out.println(Title);
        System.out.println(Text);
        List<String> list = new ArrayList<String>();
        list.add(Title);
        list.add(Auther);
        list.add(Text);
        return list;
    }
}

其中使用 List<String> 來傳送 String 的數據。markdown

okhttp 向服務器傳送 Json

okhttp 有 get 和 post 方法。我應該使用的是 get 方法,傳參數給服務器,而後獲取 json。以前錯誤的認爲應該是 post 方法,在使用 Apizza 測試 api 的時候才意識到錯誤。網絡

相關文章
相關標籤/搜索