Прочтите, что содержится в файле .json, Spring Framework, Java.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Прочтите, что содержится в файле .json, Spring Framework, Java.

Сообщение Anonymous »

Обучающее задание. У меня есть user.json. Необходимо прочитать содержимое файла и вывести его на консоль.
  • JsonConfig.java
@Configuration

Код: Выделить всё

@ComponentScan(basePackageClasses = {ru.vniiem.mcc.initstateservice.models.UserModel.class })

public class JsonConfig {

private static final Logger LOG = LogManager.getLogger(JsonConfig.class);

@Autowired
public UserModel[] usrModel;

@Bean
public void usersLog(){
LOG.info(usrModel);
}
}
  • UserModel.java
    @Component
    @PropertySource(value = "classpath:users.json ", Factory = JsonPropertySourceFactory.class)
    @ConfigurationProperties
    публичный класс UserModel {
    @Value("${login}")
    частная строка входа ;
    @Value("${password}")
    пароль частной строки;
    public UserModel() {

    public String getLogin() {
    возвращает логин;

    public void setLogin(String login) {this.login = логин;

    public String getPassword() {
    возврат пароля;

    public void setPassword(String пароль) {
    this.password = пароль;
    }
    }
  • JsonPropertySourceFactory.java
    публичный класс JsonPropertySourceFactory
    реализует PropertySourceFactory {
    @Override
    public PropertySource createPropertySource(
    String name, ресурс EncodedResource)
    выдает IOException {
    Map readValue = new ObjectMapper()
    .readValue(resource.getInputStream(), Map.class);
    return new MapPropertySource(" json-property", readValue);
    }
    }
users.json:< /p>

Код: Выделить всё

[
{"login":"aaa","password":"aaa"},
{"login":"bb","password":"bbb"}
]
При выполнении такого кода:
Вызвано: com.fasterxml.jackson.databind.exc.MismatchedInputException: невозможно десериализовать значение типа java.util.LinkedHashMap из значения массива (токен JsonToken.START_ARRAY)
в [Источник: (ByteArrayInputStream); строка: 1, столбец: 1]
Я думаю, что мне нужно переделать фабрику, но я не понимаю, что мне нужно делать, потому что PropertySource принимает только Map и java.util.Properties

Подробнее здесь: https://stackoverflow.com/questions/790 ... ework-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»