基于JSON的Java通用声明

时间:2018-11-17 12:42:15

标签: java json dataweave

我正在尝试在方法中定义Java泛型类型,但无法这样做。我浏览了很多帖子,但还没有弄清楚。

我有一个JSON,它将由Mule Dataweave转换为Java LinkedHashMap。这是简单的JSON

{
  "a": {
    "b": {
      "c": [{
          "name": "abc"
        },

        {
          "name": "xyz"
        }
      ],

      "d": "e"
    },

    "f": "g"
  }
}

现在,我想在Java方法中使用转换为LinkedHashMap的JSON。 我尝试过

public void test(LinkedHashMap<String, LinkedHashMap<String, LinkedHashMap>> payload)

,但是该值可以递归LinkedHashMap,直到我得到键和值作为String。我不知道它基于JSON响应的深度。如何在Java泛型中定义它?

1 个答案:

答案 0 :(得分:0)

由于Java不支持联合类型,因此除了

之外,您无法对此建模
public void test(LinkedHashMap<String, Object> payload)

您知道对象是Map <>还是字符串或列表。