当我尝试获取 JSONArray 的长度时,Eclipse 总是给我这个编译错误:
the method length() is undefined for the type JSONArray
代码如下:
import org.springframework.context.annotation.Scope;
import java.net.*;
import java.io.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import javax.inject.Named;
@Named("search")
@Scope("request")
public class Search {
private String query;
private String result;
private int num;
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public String getResult() {
return this.result;
}
public void setResult(String result) {
this.result = result;
}
public int getNum() {
return this.num;
}
public void setNum(int num) {
this.num = num;
}
public String send() {
try
{
//SEND REQUEST TO SOLR SERVER
URL url = new URL("http://localhost:8983/solr/select/?q="+this.query +"&version=2.2&start=0&rows=100&indent=on&wt=json");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null)
{
this.result = this.result+str;
}
in.close();
//CONVERT RESULT TO OBJECT
this.result=this.result.substring(4);
JSONObject json = (JSONObject) JSONSerializer.toJSON(this.result);
JSONArray results = new JSONArray();
json = json.getJSONObject("response");
this.num = json.getInt("numFound");
results = json.getJSONArray("docs");
int num = results.length();
我不知道为什么会弹出这个错误。这是怎么引起的,我该如何解决?
最佳答案
javadoc here不显示 JSONArray 的 length() 方法。因此错误。不过它确实有 size(),这是您想要的吗?
关于java - JSONArray 类型未定义方法 length(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8400985/