For instance if we have to send content that is within this format , how can we get it done ,,],"name2":value2

I understand how to create the fundamental kind

NameValuePair[] nameValuePairs = new NameValuePair[2];   
            nameValuePairs[0]= new BasicNameValuePair("name1", "value1");
            nameValuePairs[1] = new BasicNameValuePair("name2", value2);

httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

Exactly how should we achieve nesting

Please visit this question as it features a handful of solutions that ought to help you. This is a brief snippet in the solutions code:

HttpPost request = new HttpPost(serverUrl);
request.setEntity(new ByteArrayEntity(
    postMessage.toString().getBytes("UTF8")));
HttpResponse response = client.execute(request);

Another answer states that you can do something similar to this:

protected void sendJson(final String email, final String pwd) {

                HttpClient client = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
                HttpResponse response;
                JSONObject json = new JSONObject();
                try{
                    HttpPost post = new HttpPost(URL);
                    json.put("email", email);
                    json.put("password", pwd);
                    StringEntity se = new StringEntity( "JSON: " + json.toString());  
                    se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
                    post.setEntity(se);
                    response = client.execute(post);
                    /*Checking response */
                    if(response!=null){
                        InputStream in = response.getEntity().getContent(); //Get the data in the entity

                }
                catch(Exception e){
                    e.printStackTrace();
                    createDialog("Error", "Cannot Estabilish Connection");
                }

           }