簡體   English   中英

傑克遜將動態json轉換為地圖

[英]Jackson converting dynamic json to map

我有一個問題,其中json的某些結構是固定的,而某些部分是動態的。 最終輸出必須是類型的對象

Map<String,List<Map<String,String>>>

我正在粘貼傑克遜工作的示例json代碼-

    {
  "contentlets": [
    {
      "template": "8f8fab8e-0955-49e1-a2ed-ff45e3296aa8",
      "modDate": "2017-01-06 13:13:20.0",
      "cachettl": "0",
      "title": "New Early Warnings",
      "subscribeToListIi": "am@zz.com",
      "inode": "15bd497-1d8e-4bc7-b0f4-c799ed89fdc9",
      "privacySetting": "public",
      "__DOTNAME__": "New gTLD Early Warnings",
      "activityStatus": "Completed",
      "host": "10b6f94a-7671-4e08-9f4b-27bca80702e7",
      "languageId": 1,
      "createNotification": false,
      "folder": "951ff45c-e844-40d4-904f-92b0d2cd0c3c",
      "sortOrder": 0,
      "modUser": "dotcms.org.2897"
    }
  ]
}


ObjectMapper mapper = new  ObjectMapper();
Map<String,List<Map<String,String>>> myMap=mapper.readValue(responseStr.getBytes(), new TypeReference<HashMap<String,List<Map<String,String>>>>() {});

上面的代碼工作正常,但是當json更改為(基本上添加了元數據標記)時,它無法轉換為map。

{
  "contentlets": [
    {
      "template": "8f8fab8e-0955-49e1-a2ed-ff45e3296aa8",
      "modDate": "2017-01-06 13:13:20.0",
      "cachettl": "0",
      "title": "New gTLD Early Warnings",
      "subscribeToListIi": "aml@bb.com",
      "inode": "15bd4057-1d8e-4bc7-b0f4-c799ed89fdc9",
      "metadata": {
        "author": "jack",
        "location": "LA"
      },
      "privacySetting": "public",
      "__DOTNAME__": "New gTLD Early Warnings",
      "activityStatus": "Completed",
      "host": "10b6f94a-7671-4e08-9f4b-27bca80702e7",
      "languageId": 1,
      "createNotification": false,
      "folder": "951ff45c-e844-40d4-904f-92b0d2cd0c3c",
      "sortOrder": 0,
      "modUser": "dotcms.org.2897"
    }
  ]
}    

這是可以預期的,因為元數據值的類型不是String 如果您相應地更改地圖的類型,那么它將起作用:

Map<String,List<Map<String,Object>>> myMap = mapper.readValue(reader, new TypeReference<HashMap<String,List<Map<String,Object>>>>() {});

當然,您會遇到映射中的值不是同一類型的問題。 因此,您需要問自己自己想要的數據結構是什么以及如何進一步處理它。 但是,不能將json結構反序列化為簡單的String

暫無
暫無

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

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