Десериализатор Джексона не сработалJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Десериализатор Джексона не сработал

Сообщение Anonymous »

У меня есть класс SessionFlowModel, который я могу легко сериализовать. Однако из-за использования ObservableLists, который является моделью tableView JavaFX, где пользователь может выбирать определенные ячейки

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

public class SessionFlowModel {

@JsonDeserialize(using = JsonObservableListAdapter.class)
protected ObservableList selectableMatrix; // matrix indicating whether a transition between two exercises is possible or not
protected ObservableList exercises;                           // the list of exercises for the x-axis and y-axis
@JsonIgnore
protected DynamicSessionCtrl ctrl;                                      // reference to the UI controller to inform the UI on necessary updates

// getter and setter here
}
В классе, который управляет постоянством, я определил

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

    public void saveFlow(File file, SessionFlowModel flowModel) {

try {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(file, flowModel);
} catch (Exception e) {
debugLogger.fine("Cannot save flowModel to " + file.getAbsolutePath());
e.printStackTrace();
}
}

public void loadFlow(File file, SessionFlowModel flowModel) {

try {
ObjectMapper objectMapper = new ObjectMapper();
SessionFlowModel readModel = objectMapper.readValue(file,SessionFlowModel.class);
flowModel.setExercises(readModel.getExercises());
flowModel.setObservableSelectableMatrix(readModel.getSelectableMatrix());

} catch (Exception e) {
debugLogger.fine("Cannot load flowModel from " + file.getAbsolutePath());
e.printStackTrace();
}
}
Хотя метод saveFlow работает нормально, метод loadFlow не запускает приведенный ниже метод десериализации класса JsonObservableListAdapter, как указано в атрибуте selectableMatrix SessionFlowModel (см. выше).

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

public class JsonObservableListAdapter extends JsonDeserializer {

public JsonObservableListAdapter() {
}

@Override
public ObservableList deserialize(JsonParser parser, DeserializationContext ctxt) throws IOException, JacksonException {

ObservableList matrix = FXCollections.observableArrayList();

ObjectMapper objectMapper = (ObjectMapper) parser.getCodec();
JsonNode node = objectMapper.readTree(parser);

JsonNode childList = node.get("selectableMatrix");

for (Iterator i = childList.iterator(); i.hasNext();) {
JsonNode childNode = i.next();
}

return matrix;
}
}
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -triggered
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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