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

如何发送带有两个不同值的json文件?

袁玮
2023-03-14

我发送JSON文件(现在从邮递员)的身体是这样的:

{
    "email": "com@com.com",
    "password": "123456"
}

控制器上的方法是:

public Company getCompanyDetailsByEmailAndPassword(String email, String password) {
        System.out.println("this is email: " +email); // added the sysout to understand what arrived.
        System.out.println("this is password: " +password);
        return companyRepository.findByEmailAndPassword(email, password);
    }

我犯了个错误-

this is email: {
    "email": "com@com.com",
    "password": "123456"
}

this is password: null
2022-04-04 18:14:07.830 DEBUG 6076 --- [nio-8080-exec-8] org.hibernate.SQL                        : select company0_.id as id1_0_, company0_.email as email2_0_, company0_.name as name3_0_, company0_.password as password4_0_ from companies company0_ where company0_.email=? and (company0_.password is null)
Hibernate: select company0_.id as id1_0_, company0_.email as email2_0_, company0_.name as name3_0_, company0_.password as password4_0_ from companies company0_ where company0_.email=? and (company0_.password is null)
2022-04-04 18:14:07.831 TRACE 6076 --- [nio-8080-exec-8] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [{

如何解决这个问题?

共有2个答案

柴瀚昂
2023-03-14

由于有效负载本身是一个字符串(JSON格式),因此将为电子邮件参数分配整个JSON文本。

我建议改为使用一个参数,使用一个包含电子邮件字段和密码字段的类型(可能命名为类似“Account”的名称)。然后Spring知道这两个JSON字段属于该类的一个实例,您可以访问该实例的字段。

https://www.baeldung.com/spring-request-response-body#@requestbody提供了一个可能有用的示例

齐弘业
2023-03-14

最简单的方法是编写一个简单的类

public class EmailIdHolder {
  public String email;
  public String password;
  // add setters and getters here
} 

将控制器方法更改为:

public Company getCompanyDetailsByEmailAndPassword(EmailIdHolder id) {
        System.out.println("this is email: " +id.getEmail); // added the sysout to understand what arrived.
        System.out.println("this is password: " +id.getPassword);
        return companyRepository.findByEmailAndPassword(email, password);
    }
 类似资料:
  • 问题内容: 我有两个卡夫卡喷口,我要将其值发送到同一螺栓。 可能吗 ? 问题答案: 是的,有可能: 您也可以使用任何其他分组。 更新: 为了区分使用者螺栓中的元组(即topic_1或topic_2),有两种可能性: 1)您可以使用操作员ID(如@ user-4870385所建议): 2)您可以使用流名称(@zenbeni建议)。对于这种情况,两个喷口都需要声明命名流,而螺栓需要通过流名称连接到喷口

  • 我创建了两个java类TestA.java和TestB。java使用restAssured,其中每个类都从TestA读取json。json和testB。json并向endpointuri.TestA发出请求。java返回一个带有标记“customerID”的json响应,该标记将作为TestB的一个标记的输入。当我使用“TestB.java”customerID发布请求时,必须从TestB中选择。

  • 问题内容: 我想知道是否有可能使用AngularStrap的datepicker而不保留用户的语言环境的时区信息。在我们的应用程序中,我们要处理具有到期日期的Contract对象。 添加或编辑合同对象时,有一个日期选择器字段用于选择日期。发生以下情况: 用户选择日期(例如2013-10-24) Angular将javascript日期对象绑定到ng-model字段 绑定的日期对象位于用户的时区(例

  • 我想知道循环浏览两个csv文件并比较它们的列最合适的方式是什么。具体来说,我想将csv文件1第1列与csv文件2第20列的每一次迭代进行比较,并检查是否存在匹配。以下是我到目前为止的情况。此外,csv文件1比csv文件2小得多。

  • 使用Postman,我可以用表单数据在请求中附加文件,我也可以用原始格式发送嵌套的JSON对象,但是我如何做到这两个:用文件发送嵌套结构的数据,例如:

  • 在这里,我将字段数据与FormUrlEncoded一起使用,但我必须在相同的API部分(“user\u image”)RequestBody文件中与多部分一起使用这两种数据。这怎么可能?提前谢谢。