2013-07-31 46 views
0
的长度
@Override 
protected String doInBackground(String... params) { 
     try{ 
      JSONParser jParser = new JSONParser(); 
      String url="http://twominenglish.com/api/getlatest?"; 
      IdArray = jParser.getJSONFromUrl(url+"page="+pages); 

      mLatestList.clear(); 
      for(int i=0;i<IdArray.length();i++){ 
       if(IdArray.isNull(i)) 
       { 
        Toast.makeText(mContext, "No Value", Toast.LENGTH_SHORT).show(); 
       } 
       try{ 
        JSONObject jObject; 
        mLtest=new Latest(); 
        jObject=IdArray.getJSONObject(i); 

        mLtest.SetID(jObject.getString("ID")); 
        //mLtest.SetImageUrl(jObject.getString("ImageURL")); 
        String path="http://twominenglish.com"+jObject.getString("ImageURL"); 
        mLtest.SetImageUrl(path); 
        mLtest.SetDescription(jObject.getString("Description")); 
        mLtest.SetTitle(jObject.getString("Title")); 
        mLatestList.add(mLtest); 
        mLtest=new Latest(); 

       }catch(JSONException e){ 
        e.printStackTrace(); 
       } 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
} 

谁能帮me.this是我的代码,我从服务器通过类似的页面获取数据传给下一个按钮的数字clicked.when它不是从服务器feteching数据如何我显示消息没有数据..如何检查JSONArray

+1

你的问题我不清楚。 – Raghunandan

+0

您是否从服务中获得相同的回复? – KOTIOS

+0

你可以使用['jsonArray.length()'](http://www.json.org/javadoc/org/json/JSONArray.html#length())方法来检查'JSONArray'的长度,再加上你可以使用android listview的emptyView选项。看看:[Android - 显示警报对话框为空ListView](http://stackoverflow.com/a/8265211/593709) –

回答

1

请给JSON数组名称与URL

像 -

{ 
    "contacts": [ 
     { 
       "id": "c200", 
       "name": "Ravi Tamada", 
       "email": "[email protected]", 
       "address": "xx-xx-xxxx,x - street, x - country", 
       "gender" : "male", 
       "phone": { 
        "mobile": "+91 0000000000", 
        "home": "00 000000", 
        "office": "00 000000" 
       } 
     }, 
     { 
       "id": "c201", 
       "name": "Johnny Depp", 
       "email": "[email protected]", 
       "address": "xx-xx-xxxx,x - street, x - country", 
       "gender" : "male", 
       "phone": { 
        "mobile": "+91 0000000000", 
        "home": "00 000000", 
        "office": "00 000000" 
       } 
     }, 
     . 
     . 
     . 
     . 
    ] 
} 

这​​函数返回一个JSON对象。

写代码如下

// contacts JSONArray 
JSONArray IdArray = null; 

/getting JSON string from URL 
JSONObject json = jParser.getJSONFromUrl(url); 

try { 
    // Getting Array of Contacts 
    IdArray = json.getJSONArray(TAG_CONTACTS); 
+0

也许你应该指出'IdArray.length'存储数组结果的长度 – kabuto178

0

正如我在你的代码中看到,您的JSONArray是

IdArray = jParser.getJSONFromUrl(url+"page="+pages);

现在,这条线后,立即检查其长度

if(IdArray.length()>0) 
{ 
// do all operations here 
} 
else{ 
Toast.makeText(mContext, "Array empty", Toast.LENGTH_SHORT).show(); 
} 
+3

这是正确的答案,不知道谁在关闭 - 投票的答案.. –

+2

也许有人不喜欢简单的解决方案:P – Nizam

0

这样做... 这里是一个同步类...

类MyTask扩展的AsyncTask {

@Override 
    protected void onPreExecute() { 

     super.onPreExecute(); 
    } 


    @Override 
    protected String doInBackground(String... params) { 

     String result=IOUtils.getUrlResponse(params[0]); 

     return result; 

     // TODO Auto-generated method stub 

    } 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
      JSONArray mainJson = new JSONArray(result); 
      JSONArray objjson=mainJson.getJSONObject(0).getJSONArray("data"); 

    Log.i("lenghth",objjson.length()); //this will return length of Json Array.. 

}