2010-09-29 95 views
0

我的Java POJO看起來像這樣JSON到Java POJO通過GSON

public class myPersonTO{ 
    String name; 
    String surname; 
    Map<String, Double> categories; 

} 

我使用GSON庫中的地圖,但我的不知道我的JSON stringn,並從創建的對象應該喜歡;我使用JSON字符串化,包含兩個字符串對象的數組JavaScript對象上,看到僞代碼:

var json = []; 
jsonObject = new Object(); 
jsonObject.name = "testname" 
jsonObject.surname = "testsurname" 
var categories = []; 

for(index=0,index <10;index++){ 
    var category = new Object(); 
    category.key = getKey(); 
    category.value = index; 
    categories.push(category); 
} 
jsonObject.categories = categories; 
json.push(jsonObject); 
json = JSON.stringify(json); //convert json object, then use in submit 

,然後在Java中,我usign如下:感激

Type listType = new TypeToken<List<myPersonTO>>() {}.getType(); 
List<myPersonTO> myPersonTOList = new Gson().fromJson(jsonString,listType); 

任何幫助接收。乾杯!

回答

0

你的問題不是很清楚,但我覺得這些對象之一的JSON VERSON會是什麼樣子:

{ 
    "name": "Bob", 
    "surname": "Scum", 
    "categories": { 
    "whatever": 22.5, 
    "balloons": 107.0023, 
    "zebras": -10299.01 
    } 
} 

編輯 — OK響應你的問題了廣泛的變化:你的「類別」對象應該是而不是是一個數組。它應該是一個普通的對象,就像我的例子。那麼,至少這是我應該設想的。我不得不檢查一下這個「gson」的東西來確認,但是當我知道它希望將Java Map實例表示爲數組時,我會感到很驚訝(驚訝於我會找到另一個庫) 。

+0

gson是用於處理json對象的googles庫,它是番石榴的一部分。 – NimChimpsky 2010-09-29 14:22:47

+0

是的,謝謝,我發現它 - 我無法從「用戶指南」中確定地圖是否編碼爲鍵/值對的數組。我仍然很驚訝得知他們是。 – Pointy 2010-09-29 14:26:24

+0

他們可能不會 - 仍然讓我的頭在json格式化。 thnx爲你的幫助。 – NimChimpsky 2010-09-29 14:33:58