gpt4 book ai didi

javascript - 如何通过 JSON 传递函数名称并在 javascript/jQuery 中调用它?

转载 作者:数据小太阳 更新时间:2023-10-29 06:07:29 27 4
gpt4 key购买 nike

我有一个 JSON 字符串,其中包含我需要调用的函数。

我的 JSON 看起来像这样:

{  
"type":"listview",
// the function I would like to call
"content":"dynoData.getRetailers()",
"custom_classes":["","nMT pickList","",""],
"lib":"static_listview.html",
"tmp":"tmp_listview_inset",
"lang":"locale_search",
...

我正在使用它在客户端上组装一个 jQuery Mobile ListView 。要获取动态数据,我需要调用 dynoData.getRetailers()

但是我很难打电话:-)

这就是我正在尝试的:

var dyn = $.parseJSON( passed_JSON_string ),
content = dyn.content;

我曾希望调用它会触发函数,但它只是将函数名称作为字符串返回。

问题:
如何触发实际功能?

谢谢!

编辑:
我将 JSON 字符串放在实际页面上的 HTML 元素上,我将用我正在构建的元素替换它。这是 HTML:

<ul data-template="true" data-config='{  
"type":"listview",
"content":"dynoData.getRetailers()",
"custom_classes":["","nMT pickList","",""],
"lib":"static_listview.html",
"tmp":"tmp_listview_inset",
"lang":"locale_search",
"theme":"c",
"filter":"true"
}'></ul>

我可以将所有这些都放入 data- 属性中,但那样会很困惑...

解决方案:这有效:

1) 将 JSON 更改为:

..."method":"getRetailers", ...

2) 从 Javascript 调用:

content = dynoData[ dyn.method ]();

谢谢大家!

最佳答案

假设函数始终是 dyn 对象的一部分,您可以使用如下所示的符号来调用函数:

dyn['dynoData']['getRetailers']();

因此,如果您能够调整 json,您可以发回类似以下内容:

"content":{ "mainObject": "dynoData" , "method" :"getRetailers"}

并使用变量将其转换为您的动态函数:

  dyn[content.mainObject][content.method]();

作为使用 jQuery 的示例,请尝试使用以下内容:

$('div')['hide']();

这与 :

相同
$('div').hide()

关于javascript - 如何通过 JSON 传递函数名称并在 javascript/jQuery 中调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com