2015-06-11 10 views
0

Я пытаюсь приветствовать JSON библиотекой JSON. В momant я создаю JSONArray, чтобы добавить, чтобы добавить все значения в моем списке к нему, но я столкнулся с этой проблемойДобавить список <String> в JSONArray

он метод положить (Int, логический) в типе JSONArray не применяется для аргументов (String, List)

в этой строке arrivalMoFr.put("mon-fri", timeEntries); Как добавить список в JSONArray?

Я ценю любую помощь.

Код:

List<String> timeEntries = entry.getValue(); 

    try { 
     JSONObject timeTable = new JSONObject(); 
     timeTable.put("route", route); 

     JSONObject info = new JSONObject(); 
     info.put("direction", direction); 

     JSONObject stops = new JSONObject();  
     stops.put("stops_name", key); 

     JSONObject arrivals = new JSONObject(); 
     JSONArray arrivalMoFr = new JSONArray(); 
         //The error is here. 
     arrivalMoFr.put("mon-fri", timeEntries); 

     arrivals.put("mon-fri", arrivalMoFr); 

     stops.put("arrival_time", arrivals); 


     info.put("stops", stops); 
     timeTable.put("info", info); 

     System.out.println(timeTable.toString(3)); 


    } 

Edit: Я добавил это так, но я получаю в настоящее время этот результат:

JSONObject arrivals = new JSONObject(); 
       JSONArray arrivalMoFr = new JSONArray(); 
       arrivalMoFr.put(timeEntries); 

       arrivals.put("mon-fri", arrivalMoFr); 

Результат:

{ 
    "route": "4", 
    "info": { 
     "stops": { 
     "arrival_time": {"mon-fri": [[ 
      "05:04", 
      "18:41", 
      "19:11", 
      "19:41", 
      "20:11" 
     ]]}, 
     "stops_name": "Heiweg " 
     }, 
     "direction": "Groß Grönau" 
    } 
} 
+0

Вы не можете добавить 'list' в формате JSON. Вы можете создать JSONArray из списка, но то, что вы просите, невозможно. –

+0

Вы также пытаетесь использовать метод с неправильными параметрами. Метод JSONArray 'put' ожидает int и boolean, когда вы пытаетесь передать String и список этого метода. –

+0

Пожалуйста, см. Мой вопрос с вопросом редактирования: почему я получаю при зарождении emd из JSONArray '[[' дважды? – MrPencil

ответ

0

Вы можете использовать GsonList<String> для преобразования в формат JSON

List<String> listStrings = new ArrayList<String>(); 
listStrings.add("a"); 
listStrings.add("b"); 

Gson objGson = new Gson(); 
System.out.println(objGson.toJson(listStrings)); 

Выход

["a","b"] 
+0

Я предпочитаю Gson, когда JSOn не является мультиплексированным. Что такое эквивалентный код Gson моего кода JSON? – MrPencil

0
JSONArray att = new JSONArray(YourList); 
+0

См. Мой вопрос с кодом редактирования: почему я получаю при попытке emd из JSONArray '[[' дважды? – MrPencil