JSON String作为Javascript函数参数

时间:2011-01-09 07:06:49

标签: javascript json

我正在尝试将纯JSON字符串定义为Javascript函数中的参数。

以下是我想要定义它的方式:

<a href="#" onclick="js_func('arg_1', 'arg_2', '{"key": "value"}'); return false">Link</a>

Firebug给了我一个错误警告:未终止的字符串文字,即使我在JSON字符串上转义双引号也是如此。

我该如何解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:4)

在评估您的JSON字符串之前,使用&quot;作为双引号,然后在js_func()中,用实际双引号字符(")替换它们。(感谢演示马修,我用问题的例子更新了你的小提琴:)

http://jsfiddle.net/brillyfresh/kdwRy/1/

答案 1 :(得分:1)

只需将链接定义为<a href="#" onclick="js_func('arg_1', 'arg_2', {key: 'value1'}); return false;">Link</a>即可。 JSON是有效的JavaScript,你不需要将它包含在内。
我还建议使用EventListener(element.addEventListener()),这使得html更清晰,并且会将此问题减少为无效。

答案 2 :(得分:-1)

你要么试图传递已解析的对象,要么传递一个字符串

Object: onclick="js_func(arg_1, arg_2, {'key': 'value'});"

String: on_click="js_func('arg_1', 'arg_2', '{\"key\": \"value\"}'); return false"

我所有方便测试的都是firebug解释器,但两者都适合我。

>>>>'{\"key\": \"value\"}'
"{"key": "value"}"
>>>> {'key': 'value'}
Object {key="value"}

(我不是要假设arg_1arg_2是字符串还是变量名,并不重要。只是做与JSON相同的事情)