Я прочитал JSON файл, чтобы получить выражение для оценки библиотекой gval. Я хочу, чтобы он скомпилировал JSON строку со значениями в строковом фрагменте.
func main() {
jsonConfig := `{"exp": "\"{\" + \"\\u0022\" + fields[0] + \"\\u0022\" + \": \" + \"\\u0022\" + fields[1] + \"\\u0022\" + \"}\""}`
m := map[string]string{}
err := json.Unmarshal([]byte(jsonConfig), &m)
values := []string{"fieldA", "valA"}
res, err := gval.Evaluate(m["exp"], map[string]interface{}{"fields": values})
if err != nil {
fmt.Printf("failed to evaluate: %v\n", err)
return
}
fmt.Printf("success: (%T) %v\n", res, res)
}
Результат:
success: (string) {"fieldA": "valA"}
Проблема в том, чтобы добавить кавычки в выражение. Я использовал \u0022
, но мне это кажется неудобным. Есть ли другой способ?