对于JSONArray类型,方法length()是未定义的



当我试图获取JSONArray的长度时,Eclipse总是给我这个编译错误:

对于JSONArray

类型,方法length()是未定义的

代码如下:

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 这里没有显示JSONArray的length()方法。因此产生了错误。它确实有size(),这是你想要的吗?

最新更新