将JSON解组为映射/字符串列表

时间:2012-10-26 11:16:46

标签: json apache-camel

我想将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).. 等等... 没有成功:'(

1 个答案:

答案 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");

如果你没有让它工作,请说明错误,所以第四。