javascript - 如何使用字符串 : 中的函数创建对象

标签 javascript json parsing serialization

我将此代码存储为字符串:

{
  "func": function (field) {
    var date = getDate(field);
    return date != -1;
  },
  "somethingElse": "Message",
  "somethingElse2": "Message2"
}

有没有办法将其转换为对象? JSON.parse 不允许函数。

最佳答案

正如 Durendal 已经说过的,您必须将您的函数作为可以由 JSON.parse 处理的字符串来传递。之后,您可以使用 eval 调用您的函数:

var string = '{"func":"function (field) {return field;}","somethingElse": "Message","somethingElse2":"Message2"}';

var jsonObject = JSON.parse(string);
var func = eval("("+jsonObject["func"]+")");

document.write(func("abc"));

您可能也对这个问题感兴趣:JavaScript eval() "syntax error" on parsing a function string

关于javascript - 如何使用字符串 : 中的函数创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859622/

相关文章:

android - Web 服务、JSON 和 Android。结果 WS 不能正常工作

python - 在 python 中使用 lxml 和请求包解析 xml 和 html 页面

ruby - 解析带有花括号的 URI,URI::InvalidURIError: bad URI(is not URI?)

javascript - 为什么我的敌人死后还要攻击?(Javascript)

javascript - 在 JavaScript 中从 JSON 中提取具有特定名称的元素

javascript - 在 angularjs 中实现单个三态复选框的最佳方法是什么?

python - Python JSON-Elasticsearch-[_na]查询格式错误,必须以start_object开头

php - 解析以分号分隔的字符串

Javascript - 多次循环同一数组

javascript - AngularJS 表单验证不显示错误消息