Ваша декодированная строка должна быть такой, чтобы преобразовать ее обратно в ваш java объект (т. Е. PtsbUser
).
"{\"userId\":\"1234567890\",\"userName\": \"John Doe\", \"roles\": [\"admin\",\"users\"]}";
Но здесь, по ошибке, я мог видеть ваш декодированный json string is
"{userId:\"1234567890\",userName: \"John Doe\", roles: [\"admin\",\"users\"]}\n \n \n "";
Здесь я не уверен, как вы расшифровали свою строку json, как только ваша строка json будет декодирована правильно, как показано выше, вы можете использовать следующий код для преобразования это в объект PtsbUser следующим образом:
String decoded = "{\"userId\":\"1234567890\",\"userName\": \"John Doe\", \"roles\": [\"admin\",\"users\"]}";
ObjectMapper objectMapper = new ObjectMapper();
PtsbUser ptsbUser = objectMapper.readValue(decoded, PtsbUser.class);
System.out.println(ptsbUser);
И я также надеюсь, что ваш класс PtsbUser.java
будет выглядеть примерно так:
public class PtsbUser {
String userId;
String userName;
List<String> roles;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<String> getRoles() {
return roles;
}
public void setRoles(List<String> roles) {
this.roles = roles;
}
}
Это способ декодирования вашей String
String inputToDecode = "eyJ1c2VySWQiOiIxMjM0NTY3ODkwIiwidXNlck5hbWUiOiAiSm9obiBEb2UiLCByb2xlczogWyJhZG1pbiIsInVzZXJzIl19CiAgICAgCiAgCiAgICA=";
Decoder decoder = Base64.getDecoder();
String decodedString = new String(decoder.decode(inputToDecode ), "UTF-8");
return decodedString;