- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 json 模式验证器来验证 JSon。但它返回一条通用消息。“Json 内容不符合架构”。我有一个 HTTP POST REQUEST,它发送如下有效负载:
{ "key1" : "value1", "key2" : "value2" ,"key3": "value3" }
如果 key1 和 key2 丢失。我希望它给出如下错误消息:
{{
errorCode :1001,
errorMessage : key1 is missing",
},
errorCode :1002,
errorMessage : key2 is missing"
}
}
我尝试将错误写入文件(包含所有警告和消息的 json 文件}看起来像这样:
{
"level" : "error",
"domain" : "validation",
"keyword" : "required",
"message" : "object has missing required properties ([\"key1\",\"key2\",\"key3\"])",
"required" : [ "key1", "key2", "key3"],
"missing" : [ "key1", "key2"]
}
这只是该文件的一小部分。我必须循环遍历该文件才能获取此信息。有没有其他方法,我可以执行自定义验证并向用户返回正确的错误消息。
编辑1:
我创建了以下 RequestObj 类:
公共(public)类RequestObj {
@Valid
@NotBlank
@NotNull
private String key1;
@Valid
@NotBlank
private String key2;
@Valid
@NotBlank
private String key3;
@Override
public String toString() {
return "RequestObj [key1=" + key1 + ", key2=" + key2 + ", key3=" + key3 + "]";
}
它不会验证 key1 是否为空。
postman 请求:
POST/验证 HTTP/1.1主机:本地主机:8081内容类型:application/json
{ “key2”:“gg”, “键3”:“嗯”}
当我实现验证器接口(interface)时。我无法访问骡子事件。在这种情况下,我将如何访问需要验证的 json?
最佳答案
这是我对 json 输入执行自定义验证后的结果。我使用 JSR-303 注释来验证数据。
class Example{
@NotBlank
@Size(min = 3, max = 5)
private String key1;
@Pattern(regexp=".+@.+\\.[a-z]+") // email
private String key2;
private String key3;
}
然后我编写了一个自定义验证器,并通过传递所有值来调用静态函数 validate:
public class ValidationServiceImpl {
public static HashMap<String,String> validate(String key1 , String key2 , String key3) {
HashMap<String,String> result = new HashMap();
Example req = new Example(key1 , key2, key3);
Validator validator;
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
validator = validatorFactory.getValidator();
Set<ConstraintViolation<Example>> violations = validator.validate(req);
if(!CollectionUtils.isEmpty(violations)) {
for (ConstraintViolation<Example> violation : violations)
{
String propertyPath = violation.getPropertyPath().toString();
String message = violation.getMessage();
result.put(propertyPath, message);
}
}
return result;
}
}
结果是返回所有违规的 HashMap 。记录它会给你结果。
所需的 POM 依赖项是:
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator-annotation-processor -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.1.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.el/javax.el-api -->
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish/javax.el -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.0</version>
</dependency>
关于mule - Anypoint Studio 中的自定义 Json 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59419840/
我正在尝试在 Anypoint Studio 的 mule 项目中为 Anypoint 平台添加身份验证,使用:Anypoint 平台 --> 配置 --> 身份验证 --> 添加。 输入用户名/密码
尝试使用 Anypoint 平台配置 Mulesoft Anypoint studio 时出现错误 :The url you are trying to hit doesn't exist, url:
我可以怎样让 Anypoint Studio 更快地运行项目?当我运行一个简单的项目时,我需要等待近 20 秒。我的电脑是新的 macbook pro touch i7。当我在装有 Windows 1
如何检查流程的调用层次结构?有多少流正在调用该特定流? 例如:如果 A-> B 和 C-> B,那么当我检查流程 B 的调用层次结构时,我应该同时获得 A 和 C。 我们可以在 Anypoint St
我在装有4 GB内存的Windows 7 64位计算机上安装了Anypoint Studio(5.4.1)。当我尝试在Studio中使用Exchange(通过模板创建项目或搜索Exchange以安装连
当我尝试在使用java.util.List注释的方法中使用java.util.Map或@Processor作为参数时,出现以下编译错误: Internal compiler error: java.l
我无法为ESB Mule项目启动“ Anypoint Studio版本:5.3.0”调试器。 当我从下拉菜单中单击相应项目的调试选项时,控制台选项卡将运行INFO消息。但是在“ Mule Debugg
我尝试将我的 Mac 设置为使用 Mulesoft 和 Anypoint Studio,但是当我启动 Anypoint 时,我收到以下消息: An error has occurred. See th
对于 Mulesoft 4.2 Set Variable 组件,我想分配一个简单的字符串值,该值是从传入 JSON 有效负载的单个特定记录中提取的。 就我而言,仅从以下示例中的“国家/地区”字段中获取
我是 Mule 和 Anypoint 工作室的新手。我之前和骡子一起工作过。过了一会儿,我又回来工作了。我升级到 Anypoint Studio March 2015 Release Version:
我安装了 Anypoint studio 5.2.0 版本,还安装了 Mule ESB 运行时。我创建了一个新的 Mule 项目,但是当我执行不同的步骤时,我没有看到可以创建正如文档中提到的新流程。我
我的眼珠子都被这光亮夺去了血光。有什么方法可以在 Anypoint Studio 中获得一个看起来不错或需要数小时配置的深色主题?我知道首选项中的黑暗主题,但它搞砸了编辑器中的颜色,因此无法使用。我在
我们在设计中心(Anypoint Platform - Mulesoft)中创建了多个 RAML 文件。我们在团队中工作,因此多个用户可以通过创建单独的分支来编辑该 RAML 文件。现在我想将这些分支
我正在尝试使用Mule Runtime 4和Anypoint Studio 7.1。 我可以从下载- https://mule-studio.s3.amazonaws.com/7.1.1-GA/Any
我正在尝试使用 json 模式验证器来验证 JSon。但它返回一条通用消息。“Json 内容不符合架构”。我有一个 HTTP POST REQUEST,它发送如下有效负载: { "key1" : "v
我正在学习 mule ESB 并使用 Anypoint Studio 版本 6.4.1。我试图创建一个包含复合源的流程。我想将 FTP、HTTP 和 Anypoint MQ 连接器添加到复合源。每当我
我正在尝试在我的 MacBook 上设置 Anypoint Studio 6.6,我一直在 Windows 上使用它并且运行良好。我已经安装了 Java 8 和 Maven 3.6.3,并且还设置了环
我将此配置用于 Mule 中的 oracle 数据库:
如何从anypoint studio的根路径添加外部JavaScript和CSS 我正在使用 Anypoint Studio 中的解析模板渲染 html 页面,该 html 页面包含一个表单标记。我想
每次我尝试在 AnyPoint Studio 中发送电子邮件时,都会收到错误消息。我尝试过从其他计算机发送它,它总是有效。它似乎对我不起作用,我不知道为什么。 这是我的 .xml:
我是一名优秀的程序员,十分优秀!