【发布时间】:2021-07-10 17:07:27
【问题描述】:
我正在自己生成一个自适应卡 json,我想验证该 json 是否根据自适应卡模式编写得很好。我正在阅读this docs,从那里我知道有一个parse 函数。
我是这样用的:
import * as AdaptiveCards from 'adaptivecards';
...
try {
const adaptiveCard = new AdaptiveCards.AdaptiveCard();
adaptiveCard.parse(json);
} catch (e) {
console.log('Error', e);
}
这种方法似乎不起作用,因为解析器接受我传递给它的所有内容,只要它是 json。
我也试过这个:
const v = adaptiveCard.validateProperties();
但无论模式是否正确,响应总是相同的。
我的意思是,不管我有没有这个:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
]
}
或:
{
"schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"boy": [
{"catcher": true}
]
}
或者这个:
{
"schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "Container"
}
]
}
它总是返回相同的,即使有未知的属性,或者容器没有项目。
也许我做错了。
关于如何验证的任何提示?
【问题讨论】:
-
最简单的方法是使用包裹在try/catch中的parse+render。如果您可以使卡片最有可能有效:)
-
@TimCadenbach 感谢您的评论,将其作为回复发布以支持您