2015-11-22 6 views
2

Мне нужно преобразовать String в формате Json в объект List, и я использую ниже программу для этого.JsonArray to Arraylist Conversion

public class JsonStringToListConversion { 

    public static void main(String[] args) { 
     String userProfile = "{\"name\":\"Arun\", Skills:[\"Java\",\"Spring\",\"hibernate\"]}"; 
     JSONObject userProfileJO = (JSONObject)JSONSerializer.toJSON(userProfile); 
     List<String> skills = new ArrayList<String>(); 
     skills = (List<String>)userProfileJO.getJSONArray("Skills"); 
     System.out.println(skills); 
    } 
} 

Я использую Java 1.6 и JSON-Lib 2,4

Пожалуйста, помогите мне, чтобы узнать, является ли это правильный способ сделать это?

В частности, я привожу JSONArray в список, и он работает, правильно ли это?

+0

Я удивлен, что как работает кастинг? На самом деле 'JSONArray' нуждается в повторении и заполнении списка. [Ex] (http://stackoverflow.com/questions/3395729/convert-json-array-to-normal-java-array) –

+1

Да, правильно, что я тоже сомневаюсь в Subhrajyoti Majumder. – passionateprogrammer

ответ

0

Внутренне это JsonArray реализует интерфейс списка, поэтому листинг типа List отлично. Кроме того, итерация каждого элемента будет иметь доступ к списку один за другим, который будет накладным (влияние производительности).

Если вам нужен альтернативный способ можно использовать toCollection статический метод из того же класса JsonArray

2

Вы можете использовать этот блок кода для преобразования JSONArray в объект ArrayList.

JSONArray jsonArray=new JSONArray(); 
arrayList=new ArrayList(); 
n=jsonArray.length(); 
for (int i=0;i<n;i++) 
    arrayList.add(jsonArray.get(i)); 

Счастливое кодирование !!