2016-06-14 179 views
-4

如何获得json数组的总数no?我想在json文件中获得tolal no的id,我们可以看到有两个id。因此,不要数两个应该是两个。如何获得json数组的总数?

总数不应该显示两个。因为在json中存在两个id。我们怎么能得到这个数字? 在图像中看到我得到整个JSON。 但是我想要点击“引导”按钮后,只有两个“id”的总数没有。 lead.json

[ 
     { 
       "id": "449876", 
       "First Name": "Govind", 
"Middle Name" :"Shripatrao", 
"Last Name":"Suryawanshi", 
"City":"Gurgaon", 
"Country":"India", 
"Contact No":"+91 8586925935", 
       "email": "[email protected]", 
"Budget":"Starting at ?1.7 Crores onwards", 
"Project":" -", 
"App Platform":"UtilityApp-Android", 
"Source":"Organic", 
"Campaign":"NA", 
"Lead Time":"11/8/2015 2:51:32", 
"IP Address":"182.64.13.180" 

     }, 
     { 
"id": "425676", 
       "First Name": "Karan", 
"Middle Name" :"Singh", 
"Last Name":"Rana", 
"City":"Chandigarh", 
"Country":"India", 
"Contact No":"+91 9854563132", 
       "email": "[email protected]", 
"Budget":"Starting at ?3.35 Crore onwards", 
"Project":" Myst", 
"App Platform":"UtilityApp-Android", 
"Source":"Organic", 
"Campaign":"NA", 
"Lead Time":"9/15/2015 12:05:28", 
"IP Address":"182.71.22.178" 

       } 

    ] 

主要活动

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.VolleyLog; 
import com.android.volley.toolbox.JsonArrayRequest; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import tatahousingleads.com.tatahousingleads.app.AppController; 


public class MainActivity extends Activity { 



    // json array response url 
    private String urlJsonArry = "http://milagro.in/wip/apps/n/lead.json"; 

    private static String TAG = MainActivity.class.getSimpleName(); 
    private Button btnMakeObjectRequest, btnMakeArrayRequest; 

    // Progress dialog 
    private ProgressDialog pDialog; 

    private TextView txtResponse; 

    // temporary string to show the parsed response 
    private String jsonResponse; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // btnMakeObjectRequest = (Button) findViewById(R.id.btnObjRequest); 
     btnMakeArrayRequest = (Button) findViewById(R.id.btnArrayRequest); 
     txtResponse = (TextView) findViewById(R.id.txtResponse); 

     pDialog = new ProgressDialog(this); 
     pDialog.setMessage("Please wait..."); 
     pDialog.setCancelable(false); 



     btnMakeArrayRequest.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // making json array request 
       makeJsonArrayRequest(); 
      } 
     }); 

    } 







    private void makeJsonArrayRequest() { 

     showpDialog(); 

     JsonArrayRequest req = new JsonArrayRequest(urlJsonArry, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 

         try { 
          // Parsing json array response 
          // loop through each json object 
          jsonResponse = ""; 
          for (int i = 0; i < response.length(); i++) { 

           JSONObject lead = (JSONObject) response 
             .get(i); 

           String id = lead.getString("id"); 
           String firstname = lead.getString("First Name"); 

           String middname = lead.getString("Middle Name"); 
           String lanme = lead.getString("Last Name"); 
           String city =lead.getString("City"); 
           String country =lead.getString("Country"); 
           String contactno =lead.getString("Contact No"); 
           String email = lead.getString("email"); 
           String budget = lead.getString("Budget"); 
           String project = lead.getString("Project"); 
           String appplatform = lead.getString("App Platform"); 


           jsonResponse += "Id: " + id + "\n\n"; 
           jsonResponse += "First Name: " +firstname + "\n\n"; 
           jsonResponse += "Middle Name: " + middname + "\n\n"; 
           jsonResponse += "Last Name: " + lanme + "\n\n"; 
           jsonResponse += "City: " + city + "\n\n"; 
           jsonResponse += "Country: " + country + "\n\n"; 
           jsonResponse += "Contact No: " + contactno + "\n\n"; 
           jsonResponse += "Email: " + email + "\n\n"; 
           jsonResponse += "Budget: " + budget + "\n\n"; 
           jsonResponse += "Project: " + project + "\n\n"; 
           jsonResponse += "App Platform : " + appplatform + "\n\n\n"; 

          } 

          txtResponse.setText(jsonResponse); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), 
            "Error: " + e.getMessage(), 
            Toast.LENGTH_LONG).show(); 
         } 

         hidepDialog(); 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       Toast.makeText(getApplicationContext(), 
         error.getMessage(), Toast.LENGTH_SHORT).show(); 
       hidepDialog(); 
      } 
     }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(req); 
    } 

    private void showpDialog() { 
     if (!pDialog.isShowing()) 
      pDialog.show(); 
    } 

    private void hidepDialog() { 
     if (pDialog.isShowing()) 
      pDialog.dismiss(); 
    } 
} 

activity_main.xml中

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" 
    android:scrollbarStyle="insideInset" 
    android:scrollbars="vertical" > 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 



    <Button 
     android:id="@+id/btnArrayRequest" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" 
     android:paddingLeft="15dp" 
     android:paddingRight="15dp" 
     android:text="Leads" 
     /> 

    <TextView 
     android:id="@+id/txtResponse" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/btnArrayRequest" 
     android:layout_marginTop="20px" 
     android:padding="20dp" /> 

</LinearLayout> 
    </ScrollView> 

image

+2

JsonArray.length()会给你JsonArray的长度。 –

+0

请确定。解释你真正需要的。您已经使用response.length()来获取长度。 – Ayyappan

+0

response.length()所有准备好给你。 – anonymous

回答

1

在你MainActivity.java类,方法makeJsonArrayRequest()的内部,在OnResponse回调方法,你已经得到了数组的大小。看看你的for循环,

   @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 

         for (int i = 0; i < response.length(); i++) { 

         // Your code 

         } 

         Log.e("Array Length", response.length()); // Here you will get the length.        

响应哪里是你的JSONArray。

+0

请在这里看到json文件,你可以看到“id”只出现两次。 &我想要单击Leads按钮后,它应该是只显示两个ID的计数。 目前我点击“Leads”按钮后会得到整个json。 – user6313669

+0

将数组长度存储在'int'变量中,然后将其打印在Button上单击 – Nayan

+1

这是因为您在单击Leads Leads按钮时调用Web服务。 – SripadRaj