JSON到Java POJO通过GSON

问题描述:

我的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); 

任何帮助接收。干杯!

你的问题不是很清楚,但我觉得这些对象之一的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