Я использую jackson
для чтения и записи объекта в локальный файл json.
Это успешно читать и записывать значение. Но проблема в том, когда я читаю значение из файла. и назначить его моему объекту, это даст мне ошибку.
java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к com.testing.FeedItem
Я знаю причину ошибки, потому что для чтения значения из файла jackons используйте LinkedHashMap
Итак, LinkedHashMap
не может привести к объекту (FeedItem)
Вот что я использую.
PostFeed
public class PostFeed{
private String name;
private List<FeedItem> feeditemList;
// other code getter setter etc
}
Чтение значения из файла
ObjectMapper objectMapper = new ObjectMapper();
PostFeed postFeed = objectMapper.readValue(offlinePrivateFeed, PostFeed.class);
FeedItem feedItem = postFeed.getFeedList().get(0); // Error
Обновление значения записи в локальный файл
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(Utils.getOutputJsonFile("private-feed"), postFeed);
Я нашел похожий вопрос LinkedhashMap не может привести к модели учетной записи Но этот вопрос бесполезен в моем случае, Почти я попробовал все ответы, но никто не решил мою проблему.
Подскажите, пожалуйста, как я могу решить эту проблему?
Обновление: FeedItem
public class FeedItem{
private String name;
private int badge;
private Boolean allow;
// other code getter setter etc
}
Обновление: файл JSON
{
"feedName": "test123",
"time" : "7-7-1994",
"feedList": [
{
"name": "feedItemName",
"badge": 4,
"allow": false
},
{
"name": "feedItemName",
"badge": 1,
"allow": true
},
{
"name": "feedItemName",
"badge": 2,
"allow": false
}
]
}
Обновление: решение
Эту проблему можно решить путём преобразования LinkedHashMap
в пользовательский объект FeedItem
Но вопрос в том, как мы можем преобразовать LinkedHashMap
в Object
?