{"id":56754}
对于上面的 JSON,如果我使用 jsonResp.getString("id"),它可以正常工作,它也适用于 jsonResp.getInt("id")。
这是否意味着 getString 就像所有特定方法的父级?
这与 java 类型层次结构保持一致
getString并且getInt是两种完全不同的方法。我明白你想说什么,没有方法重载或getInt不调用getString。
很明显,getString返回 aString并getInt返回 a int。所以56754这里可以解释为String或int。还有更多,这甚至可以与getLongand一起使用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,然后以正确的方式解析结果。