Go語言解析JSON檔案,測試單元 實戰

2021-10-12 10:23:03 字數 2072 閱讀 3552

編寫json配置檔案,我這裡是鏈結資料庫的配置檔案。

建立解析json檔案函式readdbconffile.go

package conf

import

("encoding/json"

"fmt"

"io/ioutil"

"os"

"path"

"runtime"

)//注意 結構體的定義變數為大駝峰

type dbconf struct

/** 連線資料庫

*/func

init()

dir := path.

dir(filename)

fmt.

println

(fmt.

printf

("獲取db的配置的目錄是: %s "

, dir)

) jsonfile := dir +

"/db.json"

fmt.

println

("dbconffilepath is %s"

, jsonfile)

dbconffile,

_:= os.

open

(jsonfile)

defer dbconffile.

close()

// 函式執行結束之前關閉流

// 建立json解碼器

bytevalue,

_:= ioutil.

readall

(dbconffile)

fmt.

println

(string

(bytevalue)

)var dbconfcontent dbconf

err := json.

unmarshal([

]byte

(bytevalue)

,&dbconfcontent)

if err !=

nil fmt.

println

(dbconfcontent)

fmt.

println

(dbconfcontent.user)

fmt.

println

(dbconfcontent.password)

fmt.

println

(dbconfcontent.ip)

fmt.

println

(dbconfcontent.port)

fmt.

println

(dbconfcontent.dbname)

}

建立測試單元函式readdbconffile_test.go

package test

import

("fmt"

"testing"

_"yun/conf"

)//_ "yun/conf" 是匯入包, 在執行 test_readjsonfile 函式之前會先載入_ "yun/conf" 包 ,在載入包之後

// 會初始化執行 init 函式

func

test_readjsonfile

(test *testing.t)

結果:

獲取db的配置的目錄是: d:/workspaces/go/src/yun/conf 61 dbconffilepath is  %s d:/workspaces/go/src/yun/conf/db.json

root

root

127.0.0.1

3306

test

=== run test_readjsonfile

測試輸出

--- pass

: test_readjsonfile (0.00s)

pass

process finished with exit code 0

go語言解析json字串

go語言解析json資料主要使用go語言自帶的json轉換庫encoding json 1.json.marshal函式 該函式的作用是主要物件轉換為json字串資料,函式原型如下 func marsha v inte ce byte,error 也就是說,這個函式接收任意型別的資料v,並將其轉換為...

go語言json格式解析與生成示例

packagemain import encoding json fmt 目前bitly公司開源了乙個叫做 json的包,在處理未知結構體的json時相當方便 例如json的key是foo,那麼怎麼找對應的字段呢?首先查詢tag含有foo的可匯出的struct欄位 首字母大寫 其次查詢欄位名是foo...

JSON庫解析json檔案

cocoa 下json開源的類庫有很多,其中jsonkit庫是非常簡單易用而且效率又比較高的。解析 舉例 import jsonkit.h 假設 strjson 是網路上接收到的 json 字串,nsstring strjson bage 3,sound def.nsdictionary resul...