Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java json对象按名称调用函数_Java_Jquery_Json - Fatal编程技术网

Java json对象按名称调用函数

Java json对象按名称调用函数,java,jquery,json,Java,Jquery,Json,我想知道是否可以从JavaJSON对象调用函数 范例 爪哇: jquery: $ (function () { "use strict"; function test() { alert('test'); } }(jQuery)); 需要最终的成就 JSONObject json = new JSONObject(); json.put("fnRowCallback", function( nRow, aData, iDisplayIndex, iDi

我想知道是否可以从JavaJSON对象调用函数

范例

爪哇:

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");  
                }
            });

如果让Java返回javascript,则可以实现这一点

<script src="myjavapage.jsp"></script>
但是,我想不出一个好的理由来用这种方式编写代码,而不是使用一个js文件,该文件使用ajax按需获取内容,而不在json中包含代码。这似乎毫无意义。

参见或


最后我回答了自己的问题。解决方案是使用一个JSONLiteral,就像这样

爪哇

JS


谢谢大家

你想完成什么?你的基本目标是什么?你的JSON代码在服务器上。您试图在客户端上调用jQuery函数
test()
。我是tapestry5用户,我正在尝试使用jquery datatable。该组件由一个JavaJSON对象初始化。我面临的问题是试图添加这个配置json.put(“fnRowCallback”,“function(nRow,aData,iDisplayIndex,iDisplayIndexFull){alert('test');”);但是json对象不接受函数,所以我希望能够调用该函数。@Lion,tapestry5将json对象输出到clientJSON不能强迫任何事情发生。json只是一个字符串-发生的事情由接收者定义-接收者不应该执行不可信的任意代码。也许我一直都在讨论这个问题错误的方法。我是从下面的例子,表2第60行开始工作的。我试图合并这个例子,“fnRowCallback”那是什么(“fnRowCallback”)与json对象有关吗?fnRowCallback将是我在json对象中的密钥。如果你查看我发布的第一个链接,你会注意到该组件是在服务器端用json对象配置的,但在datatables的示例中,他们直接在javascript中配置它,这似乎不是我的选项。我的对将是functi在上,我不确定如何将该函数作为一对传递,因为json对象只是字符串。如何将其从json字符串传递到
dataTable
插件?实际上tapestry组件将json对象作为参数传递到dataTable,但问题是该函数是作为字符串传递的,而不是作为参数传递的而不是一个可执行函数。我想也许我可以把一个函数名传递到json对象中,然后用它来调用函数。我真的不知道如何处理这个问题。
<script src="myjavapage.jsp"></script>
$(function(){
    alert('test');
});
var obj = {
   foo: function() {
    console.log('foo called');
   }
};

var json = {method: "foo"};

obj[json.method].call(this);
public JSONObject getOptions() {
    JSONObject json = new JSONObject();
    json.put("fnRowCallback", new JSONLiteral(String.format("fnRowCallback()")));
    return json;
}
function fnRowCallback(){
    var fnRowCallback = function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
        if (aData["rush"] == "Rush" ) {
            nRow.className = nRow.className + " gradeX";  
        }
    };
    return fnRowCallback;
}