我试图返回已提供给 JSONObject 类的所有名称(例如,其自己的数组中的所有键,没有关联的值)。我的代码目前如下:
String names[] = new String[10];
names = JSONObject.getNames(jsonObj);
我试图从中获取数组的方法是:
public static String[] getNames(JSONObject jo) {
int length = jo.length();
if (length == 0) {
return null;
}
Iterator iterator = jo.keys();
String[] names = new String[length];
int i = 0;
while (iterator.hasNext()) {
names[i] = (String)iterator.next();
i += 1;
}
return names;
}
这是我收到的错误:
The method getNames(JSONObject) is undefined for the type JSONObject
但是,如果我将代码设置为故意返回并将其分配给错误类型的变量:
int inames = JSONObject.getNames(jsonObj);
突出显示上述行的 JSONObject 部分或 jsonObj 参数会导致 Eclipse 显示以下错误:
Type mismatch: cannot convert from String[] to int
尽管突出显示 getNames 方法,仍然会出现与以前相同的错误。
我能从中得到什么? Eclipse 似乎知道该方法在那里,因为它知道其正确的返回类型,但它声称该方法在类中未定义。
最佳答案
看来方法getNames
不是JSONObject的静态方法。我对吗?
它是在哪个类中声明的?
如果它是类 X
你应该这样做:
X.getNames(jsonObj);
关于java - 使用 JSONObject Java 类的静态 getNames 方法时,Eclipse 中出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11343303/