Java 使用gson从Json响应中获取嵌套属性的确切语法
我从服务器收到了此表单中的响应Java 使用gson从Json响应中获取嵌套属性的确切语法,java,json,gson,Java,Json,Gson,我从服务器收到了此表单中的响应 {"error":null,"id":1,"result":{"admin":false,"firstname":"Jason","id":346,"idHotel":109,"idVendor":null,"lastname":"Butcher","sessionkey":"3c8a17ae47a6d131b1a14b44a1d8f9a9","urlAvatar":"avatar_316_mjm.jpg","urlThumb":"thumb_316_mjm.jp
{"error":null,"id":1,"result":{"admin":false,"firstname":"Jason","id":346,"idHotel":109,"idVendor":null,"lastname":"Butcher","sessionkey":"3c8a17ae47a6d131b1a14b44a1d8f9a9","urlAvatar":"avatar_316_mjm.jpg","urlThumb":"thumb_316_mjm.jpg"}}
并希望获得嵌套json结果中的各种singles属性作为原语
比如说
Boolean error=..;
String admin=....;
String idHotel=...;
我试着用这种方式来上课
public class HotelLogin {
public boolean error;
public int id;
public Result result;
//get and set
public static class Result {
public String lastname;
...
...//get and set
}
}
我使用了这段代码来反序列化JSONObject服务器响应
但在这一点上,我不知道如何获得内部json的单个属性
如果我使用代码
Result user=login.getResult();
String lastname=user.getLastname();
获取空指针异常好吧,假设您有一个包含服务器响应的变量或返回数据,您可以尝试以下操作:
var newError = data.Error;
var newId = data.Id;
var newFirstName = data.result.firstname;
或
每个人都会得到你需要的数据。如果愿意,您可以循环使用json对象,但我喜欢使用点表示法。请注意,您不能总是使用它,因为您必须知道属性是否有子节点。问题是如何使用Java而不是JavaScript实现这一点
var newError = data.Error;
var newId = data.Id;
var newFirstName = data.result.firstname;
var serverResponse = data; //(considering that this 'data' is your json object);
//you access it through dot notation.
serverResponse.error;
serverResponse.result.admin;
serverResponse.result.id;