栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

面向CSDN编程之:golang读取json文件,并序列化为字符串

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向CSDN编程之:golang读取json文件,并序列化为字符串

golang读取JSON文件 1. 背景

周末花了两天写了一个爬取、并解析HMDB数据库的工具,为了能够根据需要修改关键搜索参数,我使用了配置文件的方式进行配置。配置文件当时为了快速省事,直接采用了json文件。

在程序启动时,读取配置文件中的参数,然后使用这部分参数从HMDB网站获取数据,也算是比较灵活方便了。

2. 实现

由于配置文件比较小,这里我直接读取了整个文件内容;然后将其解析成对应的结构体

type ReqParam struct {
	SearchMode     string   `json:"ms_search_ion_mode"`
	AdductType     []string `json:"adduct_type"`
	Tolerance      string   `json:"tolerance"`
	ToleranceUnits string   `json:"tolerance_units"`
	CcsPredictors  string   `json:"ccs_predictors"`
	CcsTolerance   string   `json:"ccs_tolerance"`
}


func ReadReqParamConfig(fileName string) string {
	f, err := os.Open(fileName)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	r := io.Reader(f)

	param := &ReqParam{}
	if err = json.NewDecoder(r).Decode(param); err != nil {
		panic(err)
	}

	return param.Trans2String()
}

func (rp ReqParam) Trans2String() string {//转换为http post载荷格式
	str := make([]byte, 0, 1024)
	{
		ss := fmt.Sprintf("&ms_search_ion_mode=%s", rp.SearchMode)
		str = append(str, []byte(ss)...)
	}

	{
		for _, v := range rp.AdductType {
			ss := "&adduct_type%5B%5D=" + v
			str = append(str, []byte(ss)...)
		}
	}
	{
		ss := fmt.Sprintf("&tolerance=%s", rp.Tolerance)
		str = append(str, []byte(ss)...)
	}
	{
		ss := fmt.Sprintf("&tolerance_units=%s", rp.ToleranceUnits)
		str = append(str, []byte(ss)...)
	}
	{
		ss := fmt.Sprintf("&ccs_predictors=%s", rp.CcsPredictors)
		str = append(str, []byte(ss)...)
	}
	{
		ss := fmt.Sprintf("&ccs_tolerance=%s", rp.CcsTolerance)
		str = append(str, []byte(ss)...)
	}
	{
		ss := fmt.Sprintf("&commit=%s", "Search")
		str = append(str, []byte(ss)...)
	}
	return strings.ReplaceAll(string(str), "+", "%2B")
}
3. HMDB爬虫工具效果

这里是最后的结果,上面介绍的只是其中一个很小的功能,虽然很简单,但是我还是百度出来的。正所谓:面向CSDN编程。为了以后能够更快,更准,更高效的面向CSDN编程,特将此小小功能记录下来。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号