我试图在java中阅读以下json。
{
"guiCarport": {
"width": 500,
"depth": 500,
"height": 230
},
"guiRoof": {
"gableRoof": false,
"overhang": {
"sides": 20,
"front": 20,
"back": 20
}
},
"guiShed": {
"shed": false,
"depth": 300,
"doorPlacement": 0,
"side": "Foran",
"rotateDoor": false
}
}
到目前为止,我的java代码在java servlet中看起来像这样:
String json = (String) request.getParameter("json");
Gson gson = new Gson();
JsonObject obj = gson.fromJson(json, JsonObject.class);
JsonElement base = obj.get("guiCarport");
JsonElement roof = obj.get("guiRoof");
JsonElement shed = obj.get("guiShed");
我最简单的方法是读取对象的值并将它们分配给变量?我为不同的对象创建了自定义类,但我需要一种方法来获取值。 谢谢!
答案 0 :(得分:-1)
您可以先将json数据转换为HashMap。这样您就可以获得值
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(jsonData, type);
答案 1 :(得分:-1)
如果您有"guiCarport", "guiRoof"
和"guiShed"
的自定义类。然后请创建一个类似下面的数据持有者
class ResponseHolder {
private GuiCarportType guiCarport;
private GuiRoofType guiRoof;
private GuiShedType guiShed;
//Getters and setters
}
现在您可以将响应direclty作为
传递到对象中 ResponseHolder holder = gson.fromJson(jsonData, ResponseHolder.class);
然后你可以获得单个对象,然后使用getter来获取它们的值。