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

如何使用Rest Assured-Java为JSON体中的参数赋值

锺离鸿
2023-03-14

我有以下JSON体,其中postingdate是一个参数。谁能帮我找到一个java代码,把参数postingDate替换成15112019这样的值。下面的JSON是我在一个字符串变量中通过java代码获取的。(这个JSON是开发人员给出的,他们使用postman进行测试)

{
    "submissionRequestDTO": {
        "applicationRequestDTO": {
            "selectedProductDTOs": [
                {
                    "allowedProductClass": "LOANS",
                    "applicationRequestType": "NEW",
                    "productGroupCode": "ABADB",
                    "productGroupName": "Home Loan",
                    "productGroupType": "LOAN"
                }
            ]
        },

            "submissionDate": {
                "sqlDate": 1525026600,
                "dateString": "{{postingDate}}",
                "sqltimestamp": 1525026600
            },
            "submissionReceiptMode": "FF",
            "submissionValueDate": {
                "sqlDate": 1525026600,
                "dateString": "{{postingDate}}",
                "sqltimestamp": 1525026600
            },
            "submittedBy": "user",
            "targetUnit": "PP"
        }
    } }

我必须发送post请求的代码

> Response rs = given().contentType(ContentType.JSON)
>                 .auth().basic("ID", "PWD").
>                 header("Content-Type", "application/json").
>                 when().log().all()
>                 .body(JiraApiPractice.ReadJSONPayloadRequest().toString()). //Reading the payload 
>                 post("submissionDrafts").
>                 then().             
>                 extract().response();

附注。我知道字符串替换,但我想知道是否有任何方法通过放心

共有1个答案

杨君之
2023-03-14

最简单的选择是在拉入正文时调用.replace(“{{postingDate}}”,your_value)。

Response rs = given().contentType(ContentType.JSON)
                 .auth().basic("ID", "PWD").
                header("Content-Type", "application/json").
                 when().log().all()
                .body(JiraApiPractice.ReadJSONPayloadRequest().toString().replace("{{postingDate}}", your_value))
                .post("submissionDrafts").
                 then().             
                 extract().response();

如果您认为会添加更多类似的内容,那么可能值得考虑一个模板解决方案,可能是这样的:https://github.com/hubspot/jinjava

PS,刚才看到你的‘PS’,我不相信放心有任何原生的他们的图书馆为这个。

 类似资料:
  • 问题内容: 我如何在我的Web服务中使用json参数,我可以使用@PathParam获取参数,但是获取json数据作为参数却不知道该怎么做。 } 用什么代替@PathParam以及以后如何解析。 问题答案: 我假设您正在谈论使用随请求发送的JSON消息正文。 如果是的话,请注意,虽然不是完全禁止的,有一个普遍的共识是GET请求应该 不会 有请求主体。有关原因的说明,请参见“ 带有请求正文的HTTP

  • 当我请求GET请求时,我得到了JSON响应,但这里我的要求是验证响应体的结构。 例如: 上面的响应有结构,所以我需要验证结构而不是键值对,我如何实现?

  • 我正在使用Selenium中的RESTAssured Java库进行API测试自动化。我需要将一个json字符串作为值传递给POST请求体的一个参数。我的请求正文如下所示: 对于parameter3,我需要传递一个json格式字符串值。json文件位于我的本地系统中,是一个很大的文件,所以如果我能传递到json文件的路径将会很有意义。 有没有办法使用RestAssured来实现这一点?

  • 我试图从json文件中获取一个对象数组,但遇到了一个问题。 我应该使用什么路径来获取项目中的所有项目(item0、item1、item2…)? 你能给我一个怎么做的建议吗。 Json 示例 从items对象中过滤item的最佳方法,但我不知道如何使用json路径。

  • 我已经做了不少搜索。但是,仍然对包中的“main”参数有疑问。节点项目的json。 填写此字段有何帮助?以另一种方式询问,如果此字段出现,我是否可以以不同的方式启动模块 我知道第二个问题很奇怪。这是因为我在OpenShift上托管了一个Node.js应用程序,但该应用程序由两个主要组件组成。一个是REST API,一个是通知传递服务。 我担心,如果REST API是作为单个线程实现的,那么通知传递

  • 我试图从以下 JSON 响应的 JSON 对象提取中找到已故计数的总和 上面的片段是json 我想找到马哈拉施特拉邦死者的总数。我知道我们可以在JSONArray上使用collect,但这里是JSONObject。我试着跟随,但没有成功