当前位置: 首页 > 知识库问答 >
问题:

验证枚举中包含JSON对象属性

蒙墨竹
2023-03-14
interface Notifications {
  type: NotificationType;
  frequency: FrequencyType;
}

enum NotificationType {
  SMS = 'SMS',
  EMAIL = 'EMAIL'
}

enum FrequencyType {
  INSTANT = 'INSTANT',
  DAILY = 'DAILY',
  WEEKLY = 'WEEKLY',
  NEVER = 'NEVER'
}
  if (body && body.frequency in FrequencyType && body.type in NotificationType) {
//do stuff
}
   var NotificationType;

(function(NotificationType2) {

  NotificationType2["SMS"] = "SMS";

  NotificationType2["EMAIL"] = "EMAIL";

})(NotificationType || (NotificationType = {}));

var FrequencyType;

(function(FrequencyType2) {

  FrequencyType2["INSTANT"] = "INSTANT";

  FrequencyType2["DAILY"] = "DAILY";

  FrequencyType2["WEEKLY"] = "WEEKLY";

  FrequencyType2["NEVER"] = "NEVER";

})(FrequencyType || (FrequencyType = {}));

共有1个答案

璩无尘
2023-03-14

TS码

enum NotificationType {
  SMS = 'SMS',
  EMAIL = 'EMAIL'
}

enum FrequencyType {
  INSTANT = 'INSTANT',
  DAILY = 'DAILY',
  WEEKLY = 'WEEKLY',
  NEVER = 'NEVER'
}

type BodyType =  {
    frequency: NotificationType;
    type: NotificationType
}

const validate = (body:BodyType):boolean => !!body && body.frequency in FrequencyType && body.type in NotificationType; 

编译完TS后,验证代码应该可以正常工作

validate({ frequency: 'INSTANT', type: 'SMS' }); // true
validate({}); // false
validate({ frequency: 'INSTANTS', type: 'SMS' }); // false

也许你需要或条件。

!!body && (body.frequency in FrequencyType || body.type in NotificationType)
 类似资料:
  • 问题内容: 我正在使用org.json库将Object转换为Json格式。请检查以下代码片段。 它显示了这样的输出: 它显示为空白并添加了卷曲基数。这是什么意思?有人遇到过这个问题吗? 问题答案: 首先,我强烈建议您不要使用此库(org.json),这是一个非常古老且不受支持的库(据我所知)。我建议杰克逊或格森。 但是,如果您确实需要JSONObject,则可以将getter添加到枚举中: 序列化

  • 我正在使用Jackson的ObjectMapper直接从收到的构建我的。为此,我用注释来注释我的字段(在本例中,字段是抽象方法,因为我使用AutoValue来简化样板文件)。 现在,我的POJO中的一些字段是,其中JSON显然包含一个常规字符串。我想以某种方式验证,在构建对象之前,这些JSON字段确实提交给给定的枚举类型。 下面是一个例子。 此属性的类型为,对应的JSON字段为ie.“Messag

  • 使用jackson2.9.8对枚举反序列化有问题。Gson也可以正常工作。模型是从swagger api定义自动生成的 使用Gson,效果很好。对于杰克逊来说,它不适用于011、013和019,但适用于其他值 Swagger api定义的片段 服务代码: 类型: 字符串枚举: - “001” - “002” - “003” - “004” - “005” - “007” - “008” - “00

  • 问题内容: 如何枚举JavaScript对象的属性? 我实际上想列出所有已定义的变量及其值,但是我了解到定义一个变量实际上会创建window对象的属性。 问题答案: 很简单: 现在,您将无法以这种方式获取私有变量,因为它们不可用。 编辑:是正确的,除非您使用该方法,否则您将获得继承的属性- 但是,我不知道为什么任何熟悉面向对象编程的人都期望得到更少的东西!通常,提起此问题的人会受到道格拉斯·克罗克

  • 问题内容: 这是我第一次在laravel中使用验证。我正在尝试对以下json对象应用验证规则。json对象名称是有效负载,下面给出示例。 验证码如下所示,出于测试目的,我将数字验证为数字。当我执行以下代码时,上面的json对象被批准并插入到我的数据库中。相反,它应该给我一个例外,因为我正在传递带有字母数字值的名称,是我做错了什么: 问题答案: 请这样 验证中的字段必须是数字,并且必须具有确切的值长

  • 问题内容: 给定这样的结构: 是否可以将其映射到: 这样,您最终获得的实例的属性分别设置为和? 问题答案: 我坚信将您的POJO与外部化分开。将您的JSON读取到Map中,然后像这样构建您的Container / ScoreKeeper对象(对于任何错别字都为apols):