【发布时间】:2016-01-22 03:44:42
【问题描述】:
我尝试从 Facebook sdk 获取数据:
public void onCompleted(JSONObject object, GraphResponse response) {
String name = null;
try {
name = object.getString("name");
} catch (JSONException e) {
e.printStackTrace();
}
String profile = null;
try {
profile = object.getJSONObject("picture").getJSONObject("data").getString("url");
} catch (JSONException e) {
e.printStackTrace();
}
String cover = null;
try {
cover = object.getJSONObject("cover").getString("source");
} catch (JSONException e) {
e.printStackTrace();
}
String email = null;
try {
email = object.getString("email");
} catch (JSONException e) {
e.printStackTrace();
}
String gender = null;
try {
gender = object.getString("gender");
} catch (JSONException e) {
e.printStackTrace();
}
String birthday = null;
try {
birthday = object.getString("birthday");
} catch (JSONException e) {
e.printStackTrace();
}
new SessionManager(activity).storeUserInfo(name, profile, cover, email, gender, birthday);
}
非常不利,因为有很多字段,每个字段都可以为空,每个字段都需要一个try-cach博客。
我需要一个解决方案来更清晰地呈现代码。
【问题讨论】:
-
每个字段都可以为空 ???当
object.getString("key");返回 null 时,你的捕获发生了,对吗??? -
如果没有“key”,它会抛出一个异常,所以我需要捕获它以避免传递其他字段
-
不,它会抛出异常
-
您不能使用 Gson 或 Jackson 吗?这已经是一个已解决的问题。
-
@mdtuyen 好的,检查我的答案