Чтобы получить данные из json, я использовал RestTemplate, и он работает для получения всех моих данных и отображения их на локальном хосте. Массив, который я получил, теперь я хочу отфильтровать, чтобы получить только некоторые данные и поместить их в новый массив, но когда я пытаюсь запустить его, он выдает «java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к model.Artists»
Должен ли я получить данные Json другим способом или функция фильтрации нуждается в преобразовании?
Модель класса
модель упаковки;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Artists {
private String ArtistName;
private String Stage;
private String Day;
private String Hour;
public Artists(){
}
public String getArtistName() {
return ArtistName;
}
public void setArtistName(String artistName) {
ArtistName = artistName;
}
public String getStage() {
return Stage;
}
public void setStage(String stage) {
Stage = stage;
}
public String getDay() {
return Day;
}
public void setDay(String day) {
Day = day;
}
public String getHour() {
return Hour;
}
public void setHour(String hour) {
Hour = hour;
}
@Override
public String toString() {
return "Artists [ArtistName=" + ArtistName + ", Stage=" + Stage + ", Day=" + Day + ", Hour=" + Hour + "]";
}
}
Класс обслуживания
@Service
public class ArtistsWrapper {
private List<Artists> artists;
private final String url ="some_random_website";
/**
* @return the artists
*/
public List<Artists> getArtists() {
RestTemplate restTemplate=new RestTemplate();
this.artists=restTemplate.getForObject(url, List.class);
return artists;
}
public List<Artists> getArtistsByStage(String stage)
{
System.out.println(artists.toString());
List<Artists> result = new ArrayList<Artists>();
for(Artists a: artists)
{
if(stage.equals(a.getStage()))
System.out.println(a.toString()+"\n");
result.add(a);
}
return result;
}
Контроллер класса
@RestController
@RequestMapping("/api")
public class ArtistsController {
@Autowired
ArtistsWrapper aw;
/*@RequestMapping("/artists")
public List<Artists> artists() {
return aw.getArtists();
}
*/
@RequestMapping("/artists")
public List<Artists> artistsByStage(@RequestParam(value="stage", defaultValue="Main") String name) {
return aw.getArtistsByStage(name);
}
}