發表文章

目前顯示的是 7月, 2019的文章

Gson發生錯誤訊息: JsonParseException: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT

圖片
這個算是剛開始用Gson的時候很容易發生的問題, 這個錯誤訊息是在告訴你:API 回傳的結果是JSON的Array結構,但你的程式卻寫為處理Object結構。 首先看一下你的API回傳的格式,以下列的API為例: https://jsonplaceholder.typicode.com/users 回傳的結果為: 從API的回傳結果可以看得出來,最外層是用Array包住,所以如果程式如同下列使用Object包覆的方式撰寫, (下列使用Kotlin的語法撰寫, response為API回傳後的結果) val gson = Gson() val type = object : TypeToken<UserGson>() {}.type val user = gson.fromJson<UserGson>(response,type) 就會出現 JsonParseException: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT 所以只要將程式改寫為用ArrayList去包住Gson的資料物件,即可解決這個錯誤 val gson = Gson() val type = object : TypeToken<ArrayList<UserGson>>() {}.type val users = gson.fromJson<ArrayList<UserGson>>(response, type) 範例程式碼: https://github.com/ukyo99999/gsonexample Reference: https://github.com/google/gson/blob/master/UserGuide.md https://stackoverflow.com/questions/9598707/gson-thro

如何在Mac架設Gitlab (How to install Gitlab using Docker on Mac)

圖片
1.下載Docker Desktop for Mac https://hub.docker.com/editions/community/docker-ce-desktop-mac 2.安裝Docker Desktop for Mac a. 將下載後的Docker.app拖曳到Application資料夾之後即可完成安裝 b.安裝後第一次開啟時,會要求輸入使用者登入密碼, 之後就會自動完成安裝與啟動Docker服務 c.啟動完成後,可檢查已安裝的docker版本,如果可以正確顯示版本號碼,表示已安裝完成 ,打開Terminal輸入指令 指令: docker -v 3.下載Gitlab的docker image 官方下載頁: https://hub.docker.com/r/gitlab/gitlab-ce/ 這個頁面,其實是要你使用docker指令下載這個image, 所以打開你的terminal,輸入以下的指令 docker pull gitlab/gitlab-ce 下載完成後可以使用指令查看下載後的內容 指令: docker images 4.啟動container 把port從80改成你要想開啟此服務的port,假設為8787 將名稱改成你要的,假設為gitlab 指令: docker run --detach --publish 8787 :80 --name gitlab gitlab/gitlab-ce:latest 檢查container是否已啟動 指令: docker ps -a STATUS的health: 會從starting,變成Up 2 minutes (healthy),就表示已啟動Gitlab這個container成功了 5.開啟Gitlab 在網址列輸入: http://localhost:8787/ 由於初次開啟,所以會自動導入變更密碼頁面,此時只要輸入你的新密碼之後即可開始使用Gitlab了