我想知道是否可以从java json对象调用函数?
实施例
的java:
JSONObject json = new JSONObject();
json.put("fnRowCallback", "test()");
jquery的:
$ (function () {
"use strict";
function test() {
alert('test');
}
}(jQuery));
需要终极成就。
JSONObject json = new JSONObject();
json.put("fnRowCallback", function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
if (aData["rush"] == "Rush" ) {
$(nRow).addClass("gradeX");
}
});
答案 0 :(得分:1)
如果您改为使用Java返回javascript,则可以完成此操作。
<script src="myjavapage.jsp"></script>
让你的Java返回
$(function(){
alert('test');
});
然而,我不能想出一个很好的理由以这种方式编码,而不是使用js文件,使用ajax按需获取内容,而不是在json中包含代码。这似乎毫无意义。
答案 1 :(得分:1)
我最后回答了自己的问题。解决方案是使用像这样的JSONLiteral,
爪哇
public JSONObject getOptions() {
JSONObject json = new JSONObject();
json.put("fnRowCallback", new JSONLiteral(String.format("fnRowCallback()")));
return json;
}
JS。
function fnRowCallback(){
var fnRowCallback = function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
if (aData["rush"] == "Rush" ) {
nRow.className = nRow.className + " gradeX";
}
};
return fnRowCallback;
}
谢谢大家。
答案 2 :(得分:0)
请参阅Function.prototype.call或Function.prototype.apply
var obj = {
foo: function() {
console.log('foo called');
}
};
var json = {method: "foo"};
obj[json.method].call(this);