使用函数填充 JSON 字段值

Using function to populate JSON field value

我正在尝试合并以下函数来填充我的 JSON 数据字段“groupName”的值。 - 无论如何将这个概念与 JSON file/field?

 "Groups" : { 
          "groupName" : function makeid() {
            var text = "";
            var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

            for (var i = 0; i < 5; i++)
            text += possible.charAt(Math.floor(Math.random() * possible.length));

        return text;
    }
},

正如我在评论中所说,您不能在 JSON 中使用函数,因为它不是有效的数据类型。

如果您因为语法相似而将它与 JS 对象混淆,请考虑以下几点:

    var test = { "Groups" : { 
              "groupName" : (function() {
                var text = "";
                var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    
                for (var i = 0; i < 5; i++)
                text += possible.charAt(Math.floor(Math.random() * possible.length));
    
            return text;
        })()
    }}
    
    console.log(test);

此时您可以将对象字符串化以得到 JSON 结果。

您不能将函数直接放在 json 中。您需要创建一个 JS 对象来匹配您的 JSON 结构,然后简单地将其字符串化以生成您需要的 JSON。看看下面的例子:

function makeid() {
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for (var i = 0; i < 5; i++)
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}

var result = {
    Groups: {
        groupName: makeid()
    }
};


console.log(JSON.stringify(result));