我可以在json对象中添加一个函数吗

Can I add a function into a json object?

本文关键字:一个 函数 json 对象 添加 我可以      更新时间:2023-09-26

我正在制作一个库,但想要使用这个库的人只能使用JavaScript来添加它。所以我想为什么不使用JSON和AJAX呢?我可以用JSON创建函数吗?

记住:这是一个非常原始的javascript,只使用了一个名为modpe的外部库,但是程序员不需要添加该库,因为它是在应用程序中加载的。

编辑:

我想实现在JSON中创建一个api。问题是我是否应该用JSON创建函数。

JSON中不能有函数,它是一种纯数据格式。

您可以在JSON中使用pass代码,然后使用eval(),但这是一个糟糕的想法,原因有很多。

另一种选择是为他们提供您编写的JS API客户端,该客户端具有您所需的所有功能。

JSON规范非常具体且具有限制性,因此不能向JSON添加函数。

也就是说,如果你控制服务器,你可以发送任何你想要的响应,包括javascript。您没有理由不使用包含函数的Javascript对象文本进行响应。请注意,大多数JSON解析器都会被结果阻塞。(但是,在这种情况下,您还可以使用<script>标记来包含外部javascript API)

假设您可以控制JSON,那么使用evalFunction构造函数解析JSON字符串中的函数代码就没有安全风险。您甚至可以使用eJSON以一种漂亮的方式设计它。

不这么做的主要原因是性能。运行时计算的代码较慢。其他原因包括调试和缓存。

使用JavaScript插入<script>元素并使src指向您的库同样简单。