Пример #1
0
func (c *Context) jsonStringify(call otto.FunctionCall) otto.Value {
	if len(call.ArgumentList) > 0 {
		obj, _ := call.ArgumentList[0].Export()
		data, err := json.Marshal(obj)
		if err == nil {
			val, _ := call.Otto.ToValue(string(data))
			return val
		}
		c.Errorf("error in JSON.stringify: %s\n", err)
	}
	return otto.UndefinedValue()
}
Пример #2
0
func (c *Context) jsonParse(call otto.FunctionCall) otto.Value {
	if len(call.ArgumentList) > 0 {
		s := call.ArgumentList[0].String()
		var m interface{}
		if err := json.Unmarshal([]byte(s), &m); err != nil {
			c.Errorf("error in JSON.parse: %s %s\n", s, err)
		} else {
			val, _ := call.Otto.ToValue(m)
			return val
		}
	}
	return otto.UndefinedValue()
}