java API自动化-将json转换为不带“\运算符且不带任何格式的字符串

rbl8hiat  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(198)

在方法中,无法传递json有效负载,而无需格式化(\和“”运算符)

public static String psotrequest() {

   String payload = "{"
       "\"name\":\"morpheus\","
       "\"job\":\"leader\"
   }";

   return payload;

}

但是否有一种方法可以传递请求有效负载

public static String psotrequest() {

   String payload = {
      "name":"morpheus",
      "job":"leader"
   };

   return payload;

}

哪个库\jar可以帮助我们在java类中传递直接请求负载,而不使用"\""\n"

fjaof16o

fjaof16o1#

字符串在java中是用双引号""来定义的,没有办法按照你的意愿来定义。但是在java 15中,它有文本块功能,这可能会有所帮助。https://docs.oracle.com/en/java/javase/15/text-blocks/index.html
例如,将json结构放入""""""

String payload = """
   {
      "name":"morpheus",
      "job":"leader"
   }
""";
oogrdqng

oogrdqng2#

步骤1:添加依赖项:

<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1.1</version>
</dependency>

步骤2:创建如下所示的类

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.io.FileReader;
import java.io.IOException;

public class JsonCoverter {

    public static JSONObject Convert_Json_To_JsonObj(String Filename) throws IOException, ParseException {

        JSONParser parser = new JSONParser();
        Object obj = parser.parse(new FileReader(Filename));
        JSONObject inputpayload = (JSONObject) obj;
        return inputpayload;
    }

}

步骤3:保存您的身体在Json文件与.json扩展名
第4步:现在在RestAssured中使用上面的Convert_Json_To_JsonObj方法。

given()
                .contentType(ContentType.JSON)
                .body(JsonCoverter.Convert_Json_To_JsonObj("src/test/resources/requestJson/YOUR_JSONFILENAME.json")).
        when()
                .post("").
        then()
                .statusCode(200);

相关问题