为什么数据增加一倍,我该如何解决?

时间:2018-11-28 05:16:08

标签: javascript node.js botframework

下午好。

我需要json,其中包含用于Adaptive Card(机器人框架)布局的基本模板。

这是这个json:

typedef

我还有一个循环,该循环从源中获取数据并从中形成另一个json。

typedef t;
t *t_ptr;

然后我结合这些json。

这很好用,但是当您再次检索数据时,数据将增加一倍。

如何解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

似乎每次创建新卡时,您都将在while循环中创建的JSON对象附加到所需的JSON对象。因此,下次您尝试创建新卡时,来自上一个请求的数据仍存储在所需的JSON对象中。为了避免这种情况,请创建所需JSON对象的副本,并将其存储在while循环之前的其他变量中。您可以使用JSON.parse(JSON.stringify(obj))创建JSON对象的副本。

您的代码应如下所示:

// create a copy of the required JSON Object
// and store it in a new variable
const card = JSON.parse(JSON.stringify(tender));

var i = 0;
while (i < me['value'].length) {
    let feed = {
        "type": "ColumnSet",
        "separator": true,
        ...
        }

    // push feed to `card` instead of `tender`
    card.body.push(feed);
    i++;
}

... 

// send `card` to user instead of `tender`
await turnContext.sendActivity({
            text: "Double Data Card",
            attachments: [CardFactory.adaptiveCard(card)]
        });