我是这个 java 和 Gson (google JSON) 的新手。这是我从服务器获取的 JSON 数据。它有数组和对象。我必须通过谷歌图书馆(Gson)反序列化{ "d":{ "results":[ { "__metadata":{ "id":"employeeHRSet('00005011')", "uri":employeeHRSet('00005011')", "type":"SRV.employeeHR" }, "Gender":"M", "ImFname":"", "ProfilePic":"user_image.png", "ImLname":"", "ImPernr":"00000000", "ImSuper":"", "ImUname":"", "ExOk":"", "Perno":"00005011", "CompCode":"1000001013", "Name":"Nishan Thevathosan", "LastName":"Thevathosan", "LastName2":"Nishan", "Firstname":"Nishan", "Userid":"GEES02", "Email":"NISHAN@gamail.COM", "Celno":"", "Isexecutive":"Y", "Designation":"80000000" } ] }}我需要从这个 JSON 数据中获取 Firstname ,LastName ,Email ,Userid 。我正在做一项工作,我对此感到震惊。我尝试过一些这样的想法,但没有奏效。 JsonObject jsonObject = new JsonParser().parse(RESTRespArr).getAsJsonObject(); System.out.println("jsonObject working"); System.out.println(jsonObject.getAsString()); JsonElement d = jsonObject.get("d"); System.out.println("d working"); System.out.println(d.getAsString()); sonElement results = ((JsonObject) d).get("results"); System.out.println("results working"); System.out.println(results.getAsString()); System.out.println(((JsonObject) results).get("LastName").getAsString());
2 回答
holdtom
TA贡献1805条经验 获得超10个赞
它对我有用。
final JsonElement lastName = results.getAsJsonArray().get(0).getAsJsonObject().get("LastName");
结果是JsonArray
的JsonObjects
,你不能投JsonObject
。因此,获取数组的第一个元素并将其转换为JsonObject
withgetAsJsonObject
方法。并获取您需要的字段。
详细:
如果JSON
在curlybrackets任何价值{ ... }
,这是jsonObject
。如果值在 中[ ... ]
,则为JsonArray
。您还可以获取哪个是对象或数组,并从中获取相关字段。
添加回答
举报
0/150
提交
取消