簡體   English   中英

將帶有密鑰動態的 json 轉換為 POJO .. java spring 引導

[英]Convert json with key dynamic to POJO.. java spring boot

我需要將 json 轉換為 pojo 我已經擁有使用它的服務,但我想將它帶到 POJO 以便能夠處理它

這都是 Json:

{
"meta": {
"status": "success",
"version": "2.0"
},
"data": {
"id": "M!t!Ch!v1!0000100002-5gda5bq0059b1-1245432868",
"token": "d71b160d82dfeeca87aa580f526d8570",
"privileges": {
  "__GLOBAL__": {
    "Store": {
      "1-m!i!s-045-158": {
        "*": -1
      },
      "1-m!i!s-047-324": {
        "*": -1
      },
      "1-m!i!s-031-1491": {
        "*": -1
      },
      "1-m!i!s-046-2": {
        "*": -1
      }
    }
  }
 },
"data": {
   "accessorId": 100001
 }
 }
 }

這部分所有鍵都是動態的:

"1-m!i!s-045-158":{"*":-1} // **the key: 1-m!i!s-045-158 is dinamic** 
{"1-m!i!s-045-158":{"*":-1},"1-m!i!s-047-324":{"*":-1},"1-m!i!s-031-1491":{"*":-1},"1-m!i!s-046-2":{"*":-1}}

這是我的 controller

    public JsonNode Evento(JsonNode json) {


    HttpHeaders header = new HttpHeaders();
    //header.add("Content-Type", "application/json");
    RestTemplate template = new RestTemplate();
    JsonNode node = mapper.convertValue(json  , JsonNode.class);
    HttpEntity<?> request = new HttpEntity<>(node);
    JsonNode resultado = template.postForObject("http://localhost:8083/moddo-channels/api/miinto", request, JsonNode.class);


    System.out.println(json.findPath("stote"));
    System.out.println(resultado);

    return json;

}

您必須使用所有字段編寫 POJO,

private Meta meta;

public class Meta{
   private String status;
   private String version;
}

等這種風格,問題可能出在商店 - 它必須是 Map

在此之后,您可以使用 Jackson ObjectMapper 並從您的響應中讀取 object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM