(我很新的GSON和JSON,所以请原谅我,如果这是一个愚蠢的问题)GSON转换从JSON到Java对象
这里是我的POST
请求response
:
String getResponse = ({"user_id":"1","device_id":"0","user_name":"jdoe","first_name":"John","last_name":"Doe"});
得到response
后,我用下面的方法把JSON
值进入我Java
对象:
FacebookUser facebookUser = new FacebookUser();
JSONObject responseObject = new JSONObject(getResponse);
Iterator<String> iter = responseObject.keys();
while (iter.hasNext()) {
String key = iter.next();
switch (key) {
case "user_id":
try {
Object value = responseObject.get(key);
facebookUser.setUserId((String) value);
} catch (JSONException e) {
Log.d("JsonException", "error" + e.toString());
}
break;
case "device_id":
try {
Object value = responseObject.get(key);
facebookUser.setDeviceId((String) value);
} catch (JSONException e) {
Log.d("JsonException", "error" + e.toString());
}
break;
case "user_name":
try {
Object value = responseObject.get(key);
facebookUser.setUsername((String) value);
} catch (JSONException e) {
Log.d("JsonException", "error" + e.toString());
}
break;
case "first_name":
try {
Object value = responseObject.get(key);
facebookUser.setFirstName((String) value);
} catch (JSONException e) {
Log.d("JsonException", "error" + e.toString());
}
break;
case "last_name":
try {
Object value = responseObject.get(key);
facebookUser.setLastName((String) value);
} catch (JSONException e) {
Log.d("JsonException", "error" + e.toString());
}
break;
}
}
这很好,所有的值都放在我的FacebookUser
对象中。但显然这是非常繁琐的工作,尤其是在我将得到带有100个键/值对的response
的情况下。
所以我试着用Gson
,使这项工作一下子:
String getResponse = ({"user_id":"1","device_id":"0","user_name":"jdoe","first_name":"John","last_name":"Doe"});
FacebookUser facebookUser = new FacebookUser();
Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.setPrettyPrinting()
.serializeNulls()
.create();
FacebookUser facebookUser = gson.fromJson(getResponse,
FacebookUser.class);
然而,所有的facebookUser
字段为空...
是否有人可以帮忙吗?
这里是我FacebookUser类:
public class FacebookUser implements Serializable{
String userId;
String deviceId;
String username;
String firstName;
String lastName;
public FacebookUser() { //default ctor
}
... a bunch of getters
... a bunch of setters
}
您能不能告诉你FacebookUser类? –
我添加了FacebookUser类 – user2456977