{"id":56754}
对于上面的 JSON,如果我使用 jsonResp.getString("id"),它可以正常工作,它也适用于 jsonResp.getInt("id")。
这是否意味着 getString 就像所有特定方法的父级?
这与 java 类型层次结构保持一致
getString
并且getInt
是两种完全不同的方法。我明白你想说什么,没有方法重载或getInt
不调用getString
。
很明显,getString
返回 aString
并getInt
返回 a int
。所以56754
这里可以解释为String或int。还有更多,这甚至可以与getLong
and一起使用getDouble
。As56754
也可以被视为 long 或 double。
根据来源 - 不完全是:
public String getString(String key) throws JSONException {
return get(key).toString();
}
尽管
public int getInt(String key) throws JSONException {
Object o = get(key);
return o instanceof Number ?
((Number)o).intValue() : (int)getDouble(key);
}
这两种方法都使用相同的方法get
,然后以正确的方式解析结果。