func (a QueryArgs) GetString(name string) (string, error) {
	argVal, ok := a[name]
	if !ok {
		return "", fmt.Errorf("missing argument '%s'", name)
	}
	var result string
	switch v := argVal.(type) {
	case string:
		result = v
	case []interface{}:
		result, ok = v[0].(string)
		if !ok {
			return "", fmt.Errorf("unexpected type for %q; must be a string", name)
		}
	default:
		return "", fmt.Errorf("unexpected type for %q; must be a string; found: %T", name, v)
	}
	return result, nil
}
GetString returns the value for the specified name as a string, or an error
if the value could not be interpreted as such.
package common
import (
	"encoding/json"
	"fmt"
	"strings"
	"github.com/ohler55/ojg/jp"
)
type QueryArgs map[string]interface{}
func (a *QueryArgs) AddFromText(text string) error {
	parts := strings.SplitN(text, "=", 2)
	if len(parts) != 2 {
		return fmt.Errorf("\"=\" not found in \"%s\"", text)
	}
	name, value := parts[0], parts[1]
	(*a)[name] = value
	return nil
}