2016-12-14 3 views
0

В код, указанный ниже,Как слить два json-файла с разными типами?

String additionalAttributes = new ObjectMapper().writeValueAsString(retrieveAttributes(requestApplication)); 

«additionalAttributes» дает мне первый ответ JSon и sessionValidationResponse дает мне другой ответ JSon Пожалуйста, обратите внимание, что оба имеющие различные типы возврата (String и SessionValidationResponse) как Я объединить эти ответы, чтобы отправить единственный ответ JSon

public SessionValidationResponse checkToken(String tokenId) throws RuntimeException { 
    System.out.println(" \n \n \n Enter in checkToken method"); 
    System.out.println("Received Token ID: " + tokenId); 


    if (null != tokenId && tokenId != "") { 
     try { 


      String filepath = "session_validation.json"; 
      String requestApplication = "myVf"; 
      String additionalAttributes = new ObjectMapper().writeValueAsString(retrieveAttributes(requestApplication)); 
      System.out.println("additionalAttributes: " +additionalAttributes); 


      try { 
       SessionValidationResponse sessionValidationResponse = jsonFileReader.read(filepath, new TypeReference<SessionValidationResponse>() { 
       }); 
       sessionValidationResponse.setToken(createToken(sessionValidationResponse.getUserName(), new Date(), Calendar.getInstance().getTime())); 
       return sessionValidationResponse; 
      } catch (Exception e) { 
       throw new RuntimeException(); 
      } 


     } catch (SignatureException e) { 
      throw new InvalidTokenException(new Exception(INVALID_TOKEN)); 
     } catch (ExpiredJwtException e) { 
      throw new TokenExpirationException(new Exception(TOKEN_EXPIRED)); 
     } catch (JsonProcessingException e) { 
      e.printStackTrace(); 
     } 
    } else { 
     throw new TokenEmptyException(new Exception(TOKEN_NOT_FOUND)); 
    } 
    return null; 
} 

Реакция типа Строка: {"status":"ACTIVE","msisdn":"45695","UT_MOBILE":"4258963144","gender":"MALE"}

Ответ сеансаValidationResponse type

{ 
    "valid": true, 
    "uid": "demo", 
    "userName": "ABC", 
    "token": "randomToken", 
    "msisdn": "9949999499" 
} 
+0

Вы имеете в виду [как это] (http://stackoverflow.com/questions/9895041/merging-two-json-documents-using-jackson)? – dnault

+0

@dnault Kinda, но пример показывает оба объекта с одинаковыми типами возврата (MyBean), и у меня есть два разных типа (String и SessionValidationResponse). Благодарим вас за возвращение. :) –

ответ

0

Обнаружено решение. Я ввел оба значения в HashMap и объединил их в одну (новую) карту, используя putAll(map1, map2);, используя Map.

Смежные вопросы