使用函数填充JSON字段值

时间:2018-08-21 15:13:08

标签: javascript json nightwatch.js

我正在尝试合并以下函数来填充JSON数据字段“ groupName”的值。 -是否要将这个概念与JSON文件/字段结合在一起?

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

2 个答案:

答案 0 :(得分:1)

您不能将函数直接放在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));

答案 1 :(得分:0)

正如我在评论中说的那样,您不能在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结果。