1. We have to take all the keys and values in One Hash table or Array of Hash tables(Vector)
2. Convert it into JSON object.
3. Send to server.
packagecom.alishaik.thread;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.Hashtable;
importjavax.microedition.io.Connector;
importjavax.microedition.io.HttpConnection;
importnet.rim.blackberry.api.browser.URLEncodedPostData;
importnet.rim.device.api.io.http.HttpProtocolConstants;
importnet.rim.device.api.ui.Screen;
importnet.rim.device.api.ui.UiApplication;
importcom.hiddenbrains.ddft.common.CommonMethods;
importcom.hiddenbrains.ddft.common.MessageScreen;
importcom.hiddenbrains.ddft.common.Utility;
importcom.hiddenbrains.ddft.json.JSONObject;
public class PostDataThread extendsThread
{
    privateHttpConnection httpConnection;
    privateInputStream inputStream;
    privateStringBuffer stringBuffer=newStringBuffer();
    privateHashtable hashTable;
    privateString URL="";
    privateintindex=0;
     
      
    public PostDataThread(String url, Hashtable hash,intindex) 
    {
//      System.out.println("=========WEB SERVICE===========: "+url);        
        URL=Utility.escapeHTML(url)+CommonMethods.updateConnectionSuffix();//interface=wifi; or deviceside=false;
        this.index=index;
        this.hashTable=hash;//Here I am taking one Hashtable. You can manage according to your requirement.
    }
     
    publicvoidrun() 
    {
        try
        {
            httpConnection=(HttpConnection)Connector.open(URL);
            httpConnection.setRequestMethod(HttpConnection.POST);
             
            URLEncodedPostData oPostData =newURLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);
            oPostData.setData(provideJSONObject());//IMPORTANT
             
            byte[] postBytes = oPostData.getBytes();
            httpConnection.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE,"application / requestJson");
            httpConnection.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, Integer.toString(postBytes.length));
            
            OutputStream strmOut = httpConnection.openOutputStream();
            strmOut.write(postBytes);
            strmOut.flush();
            strmOut.close();
             
            intresponse=httpConnection.getResponseCode();
            if(response==HttpConnection.HTTP_OK)
            {
                inputStream = httpConnection.openInputStream();
                intc;
                while((c=inputStream.read())!=-1)
                {
                    stringBuffer.append((char)c);
                }                   
                parseData(stringBuffer.toString());             
            }
            else
                parserInterface.didFailParser("Connection failure HTTP Response: "+response);
        }
        catch(finalException e) 
        {
            String msg=e.getMessage();
            if(msg==null)
                msg="No Data Found";
            //Show failure alert here
        }
        finally
        {
            try
            {
                if(httpConnection!=null)
                    httpConnection.close();
                if(inputStream!=null)
                    inputStream.close();
            } 
            catch(Exception e2) 
            {}          
        }
    }
     
    private String provideJSONObject()
    {
        try
        {
            JSONObject jsonObj=newJSONObject();
            jsonObj.put("data", hashTable);//Getting correct data; You can check here
//          System.out.println("======================JSON STRING FOR POSTING: "+jsonObj.toString());
            returnjsonObj.toString();
        } 
        catch(Exception e) 
        {
            returnnull;
        }
    }
     
    private void parseData(String responseString) 
    {
        responseString="["+responseString+"]";
        System.out.println("======================\n\n"+responseString+"\n\n===================");
        //Do what you want.        
    }
}