2012-09-21 5 views
1

나는 restassured 프레임 워크를 사용하고 있으며 그 안에 JsonPath 클래스가 있습니다. JsonPath에는 getList (String path, Class T)의 메서드 서명이 있습니다. 리스트를 얻는 방법 from restassured JsonPath

나는 이런 식으로 뭔가를 시도해야 :

List<JsonPath> myList = myJsonPathObject.getList("mypath", JsonPath.class); 

을 그리고 런타임 캐스팅 예외가. 그래서 이것을 부르는 데 올바른 형식이 무엇일까? 는 또한 시도 :

List<JsonPath> myList = myJsonPathObject.getList("mypath", new ArrayList<JsonPath>().getClass()); 

그리고 그 또한 실패했습니다. 사실 컴파일이 실패했습니다.

답변

2

JsonPath는 JSON 문서에서 값을 추출하는 데 사용됩니다. JSON 문서에서 "JsonPath"목록을 가져올 수 없습니다.

+0

방금 ​​주장한 내용을 뒷받침하는 문서가 있습니까? json은 객체와 하위 객체의 마크 업입니다. 기본적으로 json은 json 내의 json의 마크 업이므로 json에서 json 목록을 가져올 수없는 이유는 없습니다. – Churk

+2

저는 프레임 워크의 창립자입니다. 따라서 JsonPath는 Rest Assured와 함께 제공되므로 지원되지 않습니다. 다른 프레임 워크에서 지원 될 수도 있습니다. 내 동료는 Groovy 구문을 사용하지 않는 다른 JsonPath (http://code.google.com/p/json-path/)를 구현했으며 원하는 작업을 지원할 수도 있습니다. – Johan

0

나는 이것이 이전의 위협이라는 것을 알고 있지만 누군가 나에게이 사실을 알리고 상기시켜 주었다. 나는이 질문에 대한 답을 발견했다.

내가 수행해야했던 작업은 Map<String, Object>으로 캐스팅되었고 객체를 반복하는 동안 해당 객체를 적절한 클래스로 캐스팅해야했습니다.

Map<String, Object> myMap = (Map<String, Object>) myJsonPathObject.get("mypath"); 
for (String key : myMap.getKeySet()) { 
    Map<String, Object> subMyMap = (Map<String, Object>) myMap.get(key); 
} 

그래서 이제 json 내에서 추가 모형 인 json을 계속 얻을 수 있습니다.

관련 문제