【问题标题】:How do I merge two json files having different types?如何合并两个具有不同类型的 json 文件?
【发布时间】:2016-12-14 20:26:16
【问题描述】:

在下面提到的代码中,

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;
}

String类型的响应:{"status":"ACTIVE","msisdn":"45695","UT_MOBILE":"4258963144","gender":"MALE"}

SessionValidationResponse 类型的响应

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

【问题讨论】:

  • 你的意思是like this?
  • @dnault Kinda,但示例显示两个对象具有相同的返回类型(MyBean),而我有两种不同的类型(String 和 SessionValidationResponse)。谢谢你的回复。 :)

标签: java json dictionary collections casting


【解决方案1】:

找到了解决方案。我将这两个值都转换为 HashMap 并使用 putAll(map1, map2); 使用 Map 将它们合并为一个(新)Map。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2021-12-22
    • 1970-01-01
    • 2015-01-27
    • 2016-08-05
    • 2021-01-21
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多