RestAssured-检索特定路径的响应时以Map形式返回结果

时间:2019-09-10 14:01:25

标签: rest-assured rest-assured-jsonpath

我的API的响应是

{
"new": {
    "new1": "value1",
    "new2": "value2"
}
}

当我尝试使用

获取“ new”的jsonPath中的内容时
response.jsonPath().getJsonObject("new").toString()

上面的查询返回类似下面的内容,类似于地图

"new1"="value1","new2"="value2"

我寻找的答案是

{
    "new1": "value1",
    "new2": "value2"
}

也尝试了许多其他方式,但它仅返回地图

1 个答案:

答案 0 :(得分:0)

Object extracted = response.jsonPath().get("new"); ObjectMapper mapper = new ObjectMapper(); String value = null; try { value = mapper.writeValueAsString(extracted); } catch (JsonProcessingException e) { e.printStackTrace(); } 将输入转换为地图,然后使用它。您可以尝试提取所需的对象/地图,然后使用杰克逊的ObjectMapper(或其他JSON解析器)将其转换回JSON字符串:

    public int[] spiralOrder(final int[][] A) {
                int m=A.length;
                int n=A[0].length;
                int t=0, b=m-1, l=0, r=n-1, dir=0;
                int[] arr = new int[m*n];
                int p=0;
                while(t<=b && l<=r){

                    if(dir==0){
                        for(int i=l; i<=r ; i++)
                        {
                            arr[p] = A[t][i];
                            p++;
                        }
                        t++;
                        dir = 1;
                    }
                    else if(dir==1){
                        for(int j=t; j<=b; j++)
                        {
                            arr[p] = A[j][r];
                            p++;
                        }
                        dir = 2;
                        r--;
                    }
                    else if(dir==2){
                        if (r<0)break;
                        for(int i=r; i>=l; i--){
                            arr[p]=A[b][i];
                            p++;
                        }
                        dir=3;
                        b--;
                    }
                    else if(dir==3){
                        if (b<0) break;
                        for(int j = b; b>=t; j--){
                            if(j<0)break;
                            else if(j==0 & l==0)break;
                            else{
                                arr[p]=A[j][l];
                                p++;
                            }
                        }
                        dir=0;
                        l++;
                    }
                }
                return arr;
            }