#json #rest-assured #rest-assured-jsonpath
#json #будьте уверены #будьте уверены-jsonpath
Вопрос:
Не удалось проанализировать документ JSON: почему я получаю эту ошибку. Я пытаюсь передать аргумент в тело ajson для выполнения операции удаления. Данные хранятся в массиве с использованием нотаций TestNG. Когда я запускаю тест, он завершается с сообщением «не удалось проанализировать документ Json»
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import Files.BasicsPayloadBody;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import static io.restassured.RestAssured.*;
public class Deletebook {
@Test(dataProvider="deletedata")
public static void deletebooks(String deletebookid)
{
RestAssured.baseURI="http://216.10.245.166";
String DeleteResponse = given().header("Content Type","application/json")
.body(BasicsPayloadBody.deletebookdata(deletebookid))
.when().post("/Library/DeleteBook.php")
.then().extract().response().asString();
JsonPath js = new JsonPath(DeleteResponse);
System.out.println(js.getString("msg"));
}
@DataProvider(name="deletedata")
public Object[] getdata1()
{
return new Object[]{"testeqweedh47ee76","testdweeed145eeddd65","teseetsdd2teseet3wdd"};
}
}
Json Body:
public static String deletebookdata(String deletebookid)
{
String deleteid = "{rn"
" rn"
""ID" : "" deletebookid "rn"
" rn"
"} rn"
"";
return deleteid;
}
Ответ №1:
Заключительная кавычка в JSON отсутствует:
String deleteid = "{rn"
" rn"
""ID" : "" deletebookid ""rn" // <-- Added backslash and quote here
" rn"
"} rn"
"";
Кстати, вам не нужны все эти разрывы строк и пробелы внутри JSON:
String deleteid = "{"ID":"" deletebookid ""}";
Это намного легче читать.