最近有个需求,后端配置相关模板,提供接口给兄弟部门用,模板里有形如 ${name}
变量,三方调用的时候会发送 {"name":"zhang"}
这种 json 形式的字符串,后端变把 name 解析成 zhangsan。
类似这种解析变量的需求,推荐 github.com/valyala/fasttemplate
这个库,比如上面的需求可以用如下代码实现
package main
import (
"encoding/json"
"fmt"
"github.com/valyala/fasttemplate"
"log"
)
func main() {
template := "你好 ${name}"
t := fasttemplate.New(template, "${", "}")
str := `{"name":"zhangsan"}`
var ret map[string]interface{}
err := json.Unmarshal([]byte(str), &ret)
if err != nil {
fmt.Println(err.Error())
}
s := t.ExecuteString(ret)
log.Println(fmt.Sprintf("%s", s)) // 你好 zhangsan
}