2013-01-02 65 views
0

我是新來的java,我不能直截了當地思考這個問題。解析json到java中的哈希

我有一個包含JSON對象爲一個文本文件:

{"from":"1","to":["a","b"]} 

我想一個HashMap中加載這些文件,以便「從」部分是關鍵,「到「部分是價值。 我相信我在問一個非常愚蠢的問題,但有關如何有效地做到這一點的任何建議? 感謝

+1

這是可行的,但我會質疑這裏的數據模型。爲什麼不只是'{「1」:[「a」,「b」]}?這是合法的JSON,並且更容易被現有框架處理 - 直接轉換爲「Map」。 – fge

+1

我想你可能實際上必須編寫代碼來完成這個任務。遊民。 –

+1

不要擔心「高效」。擔心「工作」。因爲你有*什麼都沒有!?!*那麼這是一個更好的目標..我的第一種方法將反序列化POJO(嘿,我喜歡合同!),然後根據需要操縱。 – 2013-01-02 23:03:16

回答

3

您可以使用Jackson

// (1) deserialize JSON 
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally 
HashMap map = mapper.readValue(
    "{\"from\":\"1\",\"to\":[\"a\",\"b\"]}", HashMap.class); 

// (2) reorder stuff (use a new Map object if needed, or delete obsolete keys) 
map.put(map.get("from"), map.get("to")); 

輸出將是:

{to=[a, b], 1=[a, b], from=1} 

{1=[a, b]} 

,如果你將創建一個新的地圖對象(2)。至於效率,更重的解析部分由傑克遜處理,其中

...旨在爲開發人員提供快速,正確,輕量級和符合人體工程學的最佳組合。

+1

恩,這是否真的將'from'和'to'映射爲鍵和值? – fge