本次團隊項目做業我主要負責的是 Android 端的文本讀取以及和服務器交互的部分。因爲以前對 Android 一無所知,因此花了很長時間來了解和熟悉。Android 自己也比較複雜,對於一個不懂 Java 的初學者來講感受不是很友好。以前的很長一段時間都在學習和了解,到後來嘗試多了才初有眉目。如下是我在完成項目的過程當中學到的東西,大部分來自網絡,同窗也幫了我很大的忙。具體內容整理以下。html
以前在博客園寫博客一直都是在 VS Code 上寫好,粘貼過去,很繁瑣,修改也很麻煩,一直在找能夠直接發佈到博客園的方法。有一些方法能夠發佈可是不支持 markdown,因此一直沒找到好的辦法。在剛開始寫這篇博客時,恰好要找一個插件,就順手在商店裏搜了一下 cnblog,剛好搜到這個插件,很是好用,能夠說是十分偶然了,感謝這爲做者。安裝方法以下。
在 VS Code 的插件商店搜索 WriteCnblog,點擊安裝。具體使用方法在做者的博客能夠查看。用vscode寫博客和發佈
做者還有另一篇文章,講如何製做插件。vscode編寫插件詳細過程java
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(又稱 Google Gson)是 Google 公司發佈的一個開放源代碼的 Java 庫,主要用途爲序列化 Java 對象爲 JSON 字符串,或反序列化 JSON 字符串成 Java 對象。而 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,普遍應用於各類數據的交互中,尤爲是服務器與客戶端的交互。visual-studio-code
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"
本次的項目就用到了這個方法。服務器
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 有 get 和 post 方法。我應該使用的是 get 方法,傳參數給服務器,而後獲取 json。以前錯誤的認爲應該是 post 方法,在使用 Apizza 測試 api 的時候才意識到錯誤。網絡