我正在用 java 构建一个 json 对象。我需要将一个函数传递到我的 javascript 中并使用 jquery $.isFunction() 对其进行验证。我遇到的问题是我必须将 json 对象中的函数设置为字符串,但 json 对象将周围的引号与对象一起传递,导致函数无效。如何在脚本中不出现引号的情况下执行此操作。
Java 示例
JSONObject json = new JSONObject();
json.put("onAdd", "function () {alert(\"Deleted\");}");
Jquery脚本
//onAdd output is "function () {alert(\"Deleted\");}"
//needs to be //Output is function () {alert(\"Deleted\");}
//in order for it to be a valid function.
if($.isFunction(onAdd)) {
callback.call(hidden_input,item);
}
有什么想法吗?
您可以实现 JSONString 接口。
import org.json.JSONString;
public class JSONFunction implements JSONString {
private String string;
public JSONFunction(String string) {
this.string = string;
}
@Override
public String toJSONString() {
return string;
}
}
然后,使用您的示例:
JSONObject json = new JSONObject();
json.put("onAdd", new JSONFunction("function () {alert(\"Deleted\");}"));
输出将是:
{"onAdd":function () {alert("Deleted");}}
如前所述,它是无效的 JSON,但也许可以满足您的需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)