繁体   English   中英

如何映射json并将键名设置为具有匹配字符串的变量

[英]How to map over json and set the key name to a variable with a matching string

我从这个函数的event.body返回了以下 json(我认为是键值对) event.body exports.handler = async (event, context, callback) => {

{"name":"Anders","package":"Silver","email":"email@email.com","subject":"fdsafa","weightLoss":"false","strength":"on","message":"test"}

我想知道如何迭代它并检查任何值何时为假,如果为假,将值更改为键名?

所以在伪代码中是这样的

映射 event.body,并检查是否有任何键的值等于 false,如果是,则创建一个带有键名和键名值作为字符串的变量。

所以在这个例子 json 中,将创建一个名为weightLoss变量var weightLoss = "weightLoss"

更新一些我正在尝试做的更多代码

exports.handler =  async (event, context, callback) => {

    const payload = JSON.parse(event.body)

    const body1 = event.body;

    Object.entries(body1).forEach(([key, value]) => {
    if (value === 'false') {
        body1[key] = key;
    }
    });

    console.log(body1);

    const { email, subject } = payload

    ...

所以这都是测试一个值是否在表单中被选中。 所以我从控制台得到的输出取决于它是否被检查。

检查

{"name":"Anders","package":"Silver","email":"email@email.com","subject":"fdsafa","weightLoss":"on","strength":false,"message":"fdsasfdsdafsdafasdfasd"}

未经检查

{"name":"Anders","package":"Silver","email":"email@email.com","subject":"fdsafa","weightLoss":false,"strength":false,"message":"fdsasfdsdafsdafasdfasd"}

你可以这样做:

 const body = {"name":"Anders","package":"Silver","email":"email@email.com","subject":"fdsafa","weightLoss":"false","strength":"on","message":"test"}; Object.entries(body).forEach(([key, value]) => { if (value === 'false') { body[key] = key; } }); console.log(body);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM