Этот вопрос является продолжением этого вопроса .
Опять же, я совершенно новичок в Java и JSON, поэтому я вообще мало что знаю. Я смог немного продолжить с ответами на упомянутый выше вопрос, но теперь я столкнулся с большим количеством проблем, а именно (в основном) с синтаксисом того, как вернуть список из нескольких JSON. (Я получил эти коды от SpringBoot, и я действительно не знаю, как все это работает; я все еще изучаю Java.)
В настоящее время я пробовал вот что:
@GetMapping("reports/{userID}")
public ResponseEntity<LookupResponseList> getDirectReports(@PathVariable String userID) {
Optional<List<LDAPModel>> ldapModel = ldapService.getDirectReports(userID);
if (!ldapModel.isPresent()) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
LookupResponseResultList result = ldapMapper.toLookupResponseResultList(ldapModel.get());
return ResponseEntity.ok(LookupResponseList.result(result, LookupResponseList.class));
}
Но я не знаю, как вернуть список в приведенном выше коде, в строке, где я пытаюсь получить результат:
LookupResponseResultList result = ldapMapper.toLookupResponseResultList(ldapModel.get());
Код для ldapMapper.toLookupResponseResultList приведен ниже:
public LookupResponseResultList toLookupResponseResultList(List<LDAPModel> ldapModel) {
return LookupResponseResultList.builder()
.userId(ldapModel.toString())
// .userId(ldapModel.getUserId())
// .telephoneNumber(ldapModel.getTelephoneNumber())
.build();
}
Мне нужна строка с двумя комментариями. Я могу видеть всю структуру JSON в строке над строкой с комментариями, а именно:
{
"result": {
"userId": "[LDAPModel(userId=abcde123,telephoneNumber=1-555-5555555), LDAPModel(userId=fghi456,telephoneNumber=1-333-3333333)]",
},
"error": null
}
Как сделать так, чтобы toLookupResponseResultList возвращал список из нескольких JSON (как показано ниже) вместо строки?
{
"result": [
{
"userId": "abcde123",
"telephoneNumber": "1-555-5555555"
},
{
"userId": "fghi456",
"telephoneNumber": "1-333-3333333"
}
],
"error": null
}
Изменить: LookupResponseResultList класс ниже:
public class LookupResponseList extends BaseBodyResponse<LookupResponseList.LookupResponseResultList> {
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class LookupResponseResultList {
String userId;
String telephoneNumber;
}