2011-07-24 31 views
3

我有簡單的資源應返回JSON數組,但它返回其對象是數組:彈簧3 ArrayList的序列化JSON與傑克遜沒有包裝到對象(無姓名)

@RequestMapping(value = "/types", method = RequestMethod.GET) 
    public List <JsonObject> types() { 
     ArrayList <JsonObject> list=new ArrayList<JsonObject>(); 
     list.add(new JsonObject("Audi")); 
     list.add(new JsonObject("Mercedes")); 
     return list; 
    } 

其中的JSONObject是簡單的類有三個字符串屬性(值,標識,標籤)。

返回:

{"jsonObjectList":[{"value":"Audi","id":"Audi","label":"Audi"},{"value":"Mercedes","id":"Mercedes","label":"Mercedes"}]} 

但我什麼,我需要(因爲它是jQuery用戶界面自動完成預期):

[{"value":"Audi","id":"Audi","label":"Audi"},{"value":"Mercedes","id":"Mercedes","label":"Mercedes"}] 

如何實現這一目標? 在此先感謝。

回答

4

在Spring 3.1中,您應該能夠將名爲extractValueFromSingleKeyModel的​​bean上的屬性設置爲true以刪除包裝器。

噢,好像這個之前已經問過Why is Jackson wrapping my objects with an extra layer named after the class?

+0

謝謝你安迪!這使得伎倆。我不得不遷移到Spring 3.1,並添加 matejuh

+0

我沒有...但它也是同樣的問題。不幸的是我沒有能夠在我寫這個問題之前谷歌它。我真的嘗試過... – matejuh