我想将Json解组为Map / List of Strings(例如Map> ...)
以下是我的意见:
{"pointsOfSale":
{"pointOfSale":[
{"href":"\/pointsOfSale\/UUID.0abc2aca-7930-4c9e-9f38-8af3d0692e04",
"model":{"href":"\/models\/modelePointOfSale",
"modelType":{"href":"\/modelTypes\/pointOfSale"}},
"source":{"href":"\/sources\/TEST"},
"attribute":[
{"code":"pointOfSalePhysical","value":true},
{"code":"mail","value":"Mail1"},
{"code":"adresse","value":"address1"}]},
{"href":"\/pointsOfSale\/UUID.a12e7adf-652a-4197-91bf-d4785e43f09f",
"model":{"href":"\/models\/modelePointOfSale",
"modelType":{"href":"\/modelTypes\/pointOfSale"}},
"source":{"href":"\/sources\/Wikeo"},
"attribute":[
{"code":"pointOfSalePhysical","value":false},
{"code":"mail","value":"Mail1"},
{"code":"adresseMateriau","value":"Material address1"}]}
}}
我希望能够在解组之后做出类似的“事情”:
myJsonMapped.get("pointsOfSale").get("pointOfSale").get(0).get("source").get("href").equals("\/sources\/TEST") == true
例如,使用Gson我们可以进行这种解码:
new Gson().fromJson(json, Map.class);
我知道我可以用简单的bean或处理器等来做到这一点......
我只想知道我可以使用原生JSON驼峰组件配置
更有效地做到这一点 编辑:我尝试了不同的东西: 解组()。JSON()... 要么 unmarshal()。json(JsonLibrary.Gson,Map.class).. 等等... 没有成功:'(答案 0 :(得分:1)
你可以用杰克逊做这样的事。
<dataFormats>
<json id="jack" library="Jackson"/>
</dataFormats>
...
<route>
<from uri="direct:test"/>
<unmarshal ref="jack"/>
<process ref="something"/>
</route>
或者在java中使用gson:
from("foo:bar")
.unmarshal().json(JsonLibrary.Gson,Map.class)
.to("foo:baz");
如果你没有让它工作,请说明错误,所以第四。