Будьте уверены - JsonPath - мне нужно два значения для извлечения одновременно в зависимости от условия
Я сталкиваюсь с трудностями при извлечении значений с помощью JsonPath. Вот мой JSON,
applications:[
{
"ab": 123,
"isReady": true,
"proId": 234
},
{
"ab": 345,
"isReady": false,
"proId": 098
},
{
"ab": 332,
"isReady": true,
"proId": 100
}
]
Я хотел извлечь значения "ab" и "proId", когда значение "isReady" равно true. И как только это будет сделано, мне нужно построить ниже JSON с вышеупомянутыми значениями. Пример ниже,
[
{
"ab": 332,
"proId": 100
},
{
"ab": 123,
"proId": 234
}
]
Я могу только извлечь отдельные значения, как показано ниже,
List<Integer> abList = jsonFindAllUserJobApplicantsResponse.get("applications.findAll{ it.isReady == true}.ab");
List<Integer> proIdList = jsonFindAllUserJobApplicantsResponse.get("applications.findAll{ it.isReady == true}.proId");
Не могли бы вы помочь в этом сценарии о том, как извлечь и построить желаемый результат?
Большое спасибо за вашу помощь.
1 ответ
Попробуй это:
ArrayList<Map<String,?>> result = jsonFindAllUserJobApplicantsResponse.get("applications.findAll{ it.isReady == true}");
try {
// use Jackson library to convert map to json string
new ObjectMapper().writeValueAsString(result);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
ссылка: https://james-willett.com/2017/05/rest-assured-gpath-json/