сериализовать карту карт в dyanmodb для json - PullRequest
0 голосов
/ 21 января 2019

Чтобы присвоить Map ниже в классе, который я хочу сохранить и прочитать из Dyanmodb, используя DynamoDBMapper.


    Map<String, Map<String, Transition>> twf;

public class Transition {

    public String fst;
    public Permission pm;
    public List<Action> ac;
}

public class Action {
    private String mdl;
    private String dsc;
    private String nm;
    // email address or any other data
    private Map<String, String> data;
}

Я попытался DynamoDBTypeConverted преобразовать в String, что приводит к строке json, которая"сбежал как \" и не читается в dyanmodb.Я хотел сохранить как json

Я реализовал с пониманием того, что Dyanmodb поддерживает Map, но я все еще получаю сообщение об ошибке: Сообщение об обработке исключения: не поддерживается;требуется @DynamoDBTyped или @DynamoDBTypeConverted


    public class TimeSheetWorkFlowConverter implements
            DynamoDBTypeConverter<Map<String, Object>, Map<String, Map<String, Transition>>> {

    @Override
        public Map convert(Map<String, Map<String, Transition>> object) {
            // Map obj = mapper.readValue(object, Map.class);
            String newJson = null;
            Map objectJson = null;
            try {
                newJson = mapper.writeValueAsString(object);
                objectJson = mapper.readValue(newJson, Map.class);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return objectJson;
        }

        @SuppressWarnings("unchecked")
        @Override
        public Map<String, Map<String, Transition>> unconvert(Map<String, Object> object) {
            Map<String, Map<String, Transition>> wf = new HashMap<>();

            if (object != null && !object.isEmpty())
                for (Entry<String, Object> entry : object.entrySet()) {

                    String key = entry.getKey();
                    Map<String, Transition> value = mapTransition(entry.getValue());
                    wf.put(key, value);
                }

            return wf;
        }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...