繁体   English   中英

Rest Assured execption 类 io.restassured.path.xml.XmlPath 无法转换为类 java.util.ArrayList 错误

[英]Rest Assured execption class io.restassured.path.xml.XmlPath cannot be cast to class java.util.ArrayList error

我正在从事 Rest Assured 项目,我想获得响应正文的特定部分,但我遇到了异常:

Exception in thread "main" java.lang.ClassCastException: class io.restassured.path.xml.XmlPath cannot be cast to class java.util.ArrayList (io.restassured.path.xml.XmlPath is in unnamed module of loader 'app'; java.util.ArrayList is in module java.base of loader 'bootstrap')

该代码取自教程网站,因此它应该可以正常工作。 任何人都可以帮忙吗?

 public static void getSpecificPartOfResponseBody(){
        ArrayList<String> amounts = when().get(url).then().extract().path("result.statements.AMOUNT") ;
        int sumOfAll=0;
        for(String a:amounts){

            System.out.println("The amount value fetched is "+a);
            sumOfAll=sumOfAll+Integer.valueOf(a);
        }
        System.out.println("The total amount is "+sumOfAll);

}

响应体:

{"result:":{"statements":[{"TRANSACTION_ID":"12","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-16","AMOUNT":"500","TRANSACTION_TYPE":"D","DESCRIPTION":"Initial Deposit"},{"TRANSACTION_ID":"23","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-17","AMOUNT":"14","TRANSACTION_TYPE":"t","DESCRIPTION":"yi Tansfer From 14"},{"TRANSACTION_ID":"25","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-18","AMOUNT":"1","TRANSACTION_TYPE":"t","DESCRIPTION":"hgg Tansfer From 15"},{"TRANSACTION_ID":"49745","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2017-04-13","AMOUNT":"0","TRANSACTION_TYPE":"t","DESCRIPTION":"0 Tansfer From 1"},{"TRANSACTION_ID":"94867","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2018-11-21","AMOUNT":"500","TRANSACTION_TYPE":"t","DESCRIPTION":"cash Tansfer From 14"}]},"message":{"ErrorCode:":0,"ErrorMsg:":"Success"}}

url 是一个 php,内容类型不是 json 而是 HTML。 path(...) 仅适用于 json。 您可以将这个想法用于另一个内容类型为 json 的 URL。 我使用了这个: https : //dummy.restapiexample.com/api/v1/employees和这个代码:

public static void getSpecificPartOfResponseBody(){

    ArrayList<Integer> ages;
    ages = when().get(url).then().extract().path("data.employee_age");


    int sumOfAll=0;
    for(Integer a :ages){

        System.out.println("The age value fetched is "+a);
        sumOfAll=sumOfAll+ a;
    }
    System.out.println("The total amount of ages is " + sumOfAll);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM