Конвертировать обычный Java Array или ArrayList в Json Array в Android - PullRequest
58 голосов
/ 02 марта 2011

Есть ли способ преобразовать обычный массив Java или ArrayList в массив Json в Android для передачи объекта JSON в веб-службу?

Ответы [ 6 ]

102 голосов
/ 02 марта 2011

Если вы хотите или должны работать с массивом Java, вы всегда можете использовать метод java.util.Arrays служебных классов static asList() для преобразования массива в List.

Что-то в этом роде должно работать.

String mStringArray[] = { "String1", "String2" };

JSONArray mJSONArray = new JSONArray(Arrays.asList(mStringArray));

Остерегайтесь того, что код написан от руки, поэтому считайте его псевдокодом.

36 голосов
/ 02 марта 2011
ArrayList<String> list = new ArrayList<String>();
list.add("blah");
list.add("bleh");
JSONArray jsArray = new JSONArray(list);

Это только пример использования строкового массива

8 голосов
/ 25 сентября 2015

example key = "Name" value = "Xavier", и это значение зависит от количества передаваемых массивов

 try
      {
      JSONArray jArry=new JSONArray();
      for (int i=0;i<3;i++)
      {
       JSONObject jObjd=new JSONObject();
       jObjd.put("key", value);
       jObjd.put("key", value);
       jArry.put(jObjd);
      }
      Log.e("Test", jArry.toString());
      }
 catch(JSONException ex)
     {

     }
8 голосов
/ 02 марта 2011

вам нужна внешняя библиотека

 json-lib-2.2.2-jdk15.jar

List mybeanList = new ArrayList();
mybeanList.add("S");
mybeanList.add("b");

JSONArray jsonA = JSONArray.fromObject(mybeanList);
System.out.println(jsonA);

Google Gson - лучшая библиотека http://code.google.com/p/google-gson/

5 голосов
/ 17 мая 2018

Это правильный синтаксис:

String arlist1 [] = { "value1`", "value2", "value3" };
JSONArray jsonArray1 = new JSONArray(arlist1);
5 голосов
/ 12 апреля 2016

Для простого java String Array вы должны попробовать

String arr_str [] = { "value1`", "value2", "value3" };

JSONArray arr_strJson = new JSONArray(Arrays.asList(arr_str));
System.out.println(arr_strJson.toString());

Если у вас есть универсальный ArrayList типа String, например ArrayList<String>.тогда вы должны попробовать

 ArrayList<String> obj_list = new ArrayList<>();
    obj_list.add("value1");
    obj_list.add("value2");
    obj_list.add("value3");
  JSONArray arr_strJson = new JSONArray(obj_list));
  System.out.println(arr_strJson.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...