我正在尝试从嵌套的JSONObject中提取一个值,例如“ id”。我使用的是org.json.simple
软件包,我的代码如下:
JSONArray entries = (JSONArray) response.get("entries");
JSONObject entry = (JSONObject) entries.get(0);
JSONArray runs = (JSONArray) entry.get("runs");
JSONObject run = (JSONObject) runs.get(0);
String run_id = run.get("id").toString();
其中响应是一个JSONObject。
是否可以使用Fluent Interface Pattern重构代码,使代码更具可读性?例如,
String run_id = response.get("entries")
.get(0)
.get("runs")
.get(0)
.get("id").toString();
谢谢。
答案 0 :(得分:3)
有可能。
bundler
您可以像这样使用它
class FluentJson {
private Object value;
public FluentJson(Object value) {
this.value = value;
}
public FluentJson get(int index) throws JSONException {
JSONArray a = (JSONArray) value;
return new FluentJson(a.get(index));
}
public FluentJson get(String key) throws JSONException {
JSONObject o = (JSONObject) value;
return new FluentJson(o.get(key));
}
public String toString() {
return value == null ? null : value.toString();
}
public Number toNumber() {
return (Number) value;
}
}