Десериализовать JSON с помощью комбинированных ключей "(String, Integer, String)" обратно в объект с несколькими картами - PullRequest
1 голос
/ 15 апреля 2019

Я создал файл json из многокарточного объекта гуавы, используя ObjectMapper. И теперь я хочу десериализовать JSON-файл в Java-объект. JSON содержит комбинированный ключ (String, Integer, String). Я не хочу использовать карту >>.

Multimap<Triple<String, Integer, String>, Integer> eventConf = HashMultimap.create();

eventConf.put(Triple.of("NOTIFICATION", EventType.EVENT_TYPE_COMMENT_VIDEO.getEventType() ,"GRP_USER"), 0);
         eventConf.put(Triple.of("NOTIFICATION", EventType.EVENT_TYPE_COMMENT_VIDEO.getEventType() ,"GRP_USER_FOLLOWERS"), 0);
         eventConf.put(Triple.of("NOTIFICATION", EventType.EVENT_TYPE_COMMENT_VIDEO.getEventType() ,"GRP_PROFILE"), 1);
         eventConf.put(Triple.of("NOTIFICATION", EventType.EVENT_TYPE_COMMENT_VIDEO.getEventType() ,"GRP_PROFILE_FOLLOWERS"), 0);

try {
             mapper.writeValue(new File("EventProcessorConfig.json"), eventConf.asMap());
         } catch (JsonGenerationException e) {
             e.printStackTrace();
         } catch (JsonMappingException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
         }

То, что я получаю как json, это

{
 "(NOTIFICATION,52,GRP_PROFILE_FOLLOWERS)":[  
      0
   ],
   "(NOTIFICATION,52,GRP_PROFILE)":[  
      0
   ],
   "(NEWSFEED,52,GRP_USER)":[  
      1
   ],

   "(NEWSFEED,52,GRP_USER_FOLLOWERS)":[  
      1
   ]
}

Как десериализовать этот json в объект с несколькими картами?

...