Мне не удалось воспроизвести ваше точное исключение, но я вижу проблемы соглашения об именах в вашем классе java и объекте json.Вы не следуете за верблюжьим корпусом, и это, безусловно, приведет к неправильным отображениям полей и, следовательно, вызовет исключение при разборе, отличное от того, с которым вы столкнулись.
Я только что внес эти изменения в ваш класс json string & DBConfig,и я смог успешно выполнить код.
class DatabaseConfiguration {
String name;
String value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
String testJson = "[{\"name\":\"driverclass\",\"value\":\"com.mysql.jdbc.Driver\"},{\"name\":\"password\",\"value\":\"abc\"},{\"name\":\"url\",\"value\":\"jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false\"},{\"name\":\"username\",\"value\":\"abc\"}]";
[
{
"name":"driverclass",
"value":"com.mysql.jdbc.Driver"
},
{
"name":"password",
"value":"abc"
},
{
"name":"url",
"value":"jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false"
},
{
"name":"username",
"value":"abc"
}
]
Ваша строка ввода json командной строки должна выглядеть так, заключенная в двойные кавычки:
"[ { \"Name\": \"jdbc.connection.driver_class\", \"Value\": \"com.mysql.jdbc.Driver\" }, { \"Name\": \"password\", \"Value\": \"abc\" }, { \"Name\": \"url\", \"Value\": \"jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false\" }, { \"Name\": \"username\", \"Value\": \"abc\" } ]"