2011-12-06 37 views
3

的Eclipse总是给我这个编译错误,当我试图得到一个JSONArray的长度)方法长度()是未定义的类型JSONArray

方法长度(未定义的类型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(); 

我不知道为什么这个错误被弹出。这是如何造成的,我该如何解决这个问题?

+0

它会帮助,如果你能后的样本JSON对象了。 –

回答

3

javadoc here不显示JSONArray的length()方法。因此错误。它确实有尺寸(),但是你在做什么?

+0

哈哈谢谢!我觉得有点愚蠢,因为我刚刚搜索了“class jsonarray”,并发现了这个javadoc [here](http://www.json.org/javadoc/org/json/JSONArray.html),我在找的东西是方法length()。 – user871784

0

实例,使之更加明确: 假设personList是用户创建的类“人”的ArrayList,

$.ajax({ 

success:function (resultData) { 

var resultListData = resultData.personList; // personList as a JSON Object got by Action response. 
if(resultListData.length > 0){ 
    // process results 
    $.each(resultListData, function (iter) { 
      alert(resultListData[iter].personFirstName); 
    }else{ 
    alert("No Data to display"); 
} 
} 
}); 
相关问题