Отправка ArrayList из приложения Android в удаленную базу данных через веб-сервис - PullRequest
1 голос
/ 09 ноября 2011

У меня есть ArrayList типа "String", который содержит определенные значения. Я хочу отправить этот ArrayList в удаленную базу данных с помощью веб-службы. Я планирую использовать JSON для вставки того же самого, но я сталкиваюсь с определенными трудностями и хочу знать, как это сделать.

Вот мой код на данный момент:

Мой ArrayList определен так. Его целью является сохранение значений флажков

      ArrayList<String> items2 = new ArrayList<String>();

            for (int i = 0; i < arr2.length; i++) 
            {
                if (checkedabsent.get(i)) 
                {
                    items2.add(arr2[i]); //arr2 is a String array containing all values
                    System.out.println(items2);
                }
            }

            Log.d("", "items:");
            for (String string : items2)
            {
                Log.d("", string);
                System.out.println(items2);
            }

Вот что мне трудно! Код JSON

   HttpPost httppost = new HttpPost("http://10.0.2.2/enterdata/Service1.asmx");
   HttpClient client = new DefaultHttpClient(httpParams);

    try
            {
            String result;
            JSONObject obj = new JSONObject();
           // how do I put the array list over here ??           

            int TIMEOUT_MILLISEC = 10000;  // = 10 seconds
            HttpParams httpParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
            HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);

            httppost.setHeader("Content-Type", "application/json");
            httppost.setHeader("Accept","application/json");

            // Execute HTTP Post Request
            HttpResponse httpResponse = client.execute(httppost);
            HttpEntity httpEntity = httpResponse.getEntity();


            if (httpEntity != null) 
            {
                InputStream is = httpEntity.getContent();
                result = is.toString();
                Log.i("Result is ", "Result: " + result);
                if(result.equalsIgnoreCase("success"))
                {
                    startActivity(new Intent(Mark.this,nextscreen.class));
                }
            }

            }

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

Чтобы преобразовать в массив JSON, вы должны использовать следующее

ArrayList<String> list = new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
JSONArray jsArray = new JSONArray(list);

Затем передать jsArray как , описанное здесь .

Извините, если я неправильно понял ваш вопрос.

Обновление, так:

  ArrayList<String> items2 = new ArrayList<String>();

        for (int i = 0; i < arr2.length; i++) 
        {
            if (checkedabsent.get(i)) 
            {
                items2.add(arr2[i]); //arr2 is a String array containing all values
                System.out.println(items2);
            }
        }

        Log.d("", "items:");
        for (String string : items2)
        {
            Log.d("", string);
            System.out.println(items2);
        }

        HttpPost httppost = new HttpPost("http://10.0.2.2/enterdata/Service1.asmx");
        HttpClient client = new DefaultHttpClient(httpParams);

        try
        {
            String result;
            //JSONObject obj = new JSONObject();
            JSONArray jsArray = new JSONArray(items2);

            int TIMEOUT_MILLISEC = 10000;  // = 10 seconds
            HttpParams httpParams = new BasicHttpParams();

...
1 голос
/ 09 ноября 2011

Вы можете создать JSONArray из вашего ArrayList

JSONArray foo = new JSONArray(yourArrayList);
1 голос
/ 09 ноября 2011

Вы можете просто сделать это?

ArrayList<String> items2 = new ArrayList<String>();
...

JSONObject obj = new JSONObject();

for(int i=0; i<items2.size(); i++)
{
    obj.put("" + i, items.get(i));
}
//then use obj.write(Writer x) to send it
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...