Я написал запрос для выборки двух столбцов типа JSONB
, и в моем классе преобразования преобразовал тип jsonb
в строку и присвоил map<String,String>
. Поскольку он может иметь несколько строк, возвращаемых для этого двух столбцов, у меня есть тип возвращаемого значения List<Map<String,String>>
. Но при выполнении Get API получено исключение java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $
.
Я знаю, почему возникает эта проблема, она ожидает {
, но обнаружила "
. Я искал похожую проблему и перепробовал все способы. Пожалуйста, помогите мне в решении этой проблемы. Я даже пытался восстановить свое приложение, но безуспешно.
Ниже приведен мой результат запроса, в котором есть два столбца типа jsonb:
search_Content :
{"title": "Client Profile","isLiked": false, "summary": "This is summary", "category": "Reference","documentId": 120, "updateDate": "2017-12-03T06:00:00Z"}
doc_tag: {"comment": "My comment"}
search_Content :{"title": "Intermountain Healthcare","isLiked": false, "summary": "This is summary", "category": "Reference","documentId": 126, "updateDate": "2017-12-03T06:00:00Z"}
search_Content :{"comment": "Tag for this doc"}
В моем классе по картографии:
public List<Map<String,String>> extractData(ResultSet rs) throws SQLException {
List<Map<String,String>> returnList = new ArrayList<Map<String,String>>();
while (rs.next()) {
Map<String,String> map = new HashMap<String, String>();
map.put("Doc content",new Gson().fromJson(rs.getString("search_content"),
new TypeToken<String>() {}.getType()));
if(rs.getString("doc_tag") != null) {
map.put("Doc Tag", new Gson().fromJson(rs.getString("doc_tag"),
new TypeToken<String>() {}.getType()));
}
returnList.add(map);
}
return returnList;
}
Мой ожидаемый результат:
[
{
"Doc content":{"title": "Client Profile","isLiked": false, "summary": "This is summary", "category": "Reference","documentId": 120, "updateDate": "2017-12-03T06:00:00Z"},
"Doc Tag":{"comment": "My comment"}
},
{
"Doc content":{"title": "Intermountain Healthcare","isLiked": false, "summary": "This is summary", "category": "Reference","documentId": 126, "updateDate": "2017-12-03T06:00:00Z"},
"Doc Tag":{"comment": "Tag for this doc"}
}
]
Но получено исключение:
"message": "java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $",