2016-10-07 1 views
-2

Попытка поместить этот список строк в json-формат. Список строк выглядит как структура каталогов.Рекурсивно положить массив строки в json

Хотела окончательного отказа поставить быть как

[{"name":"Cars","show":false,"nodes":[{"name":"Truck","show":false,"nodes":[{"name":"Regular","show":false,"nodes":[]},{"name":"4x4","show":false,"nodes":[{"name":"Lifted","show":false,"nodes":[]}]}]},{"name":"Jeep","show":false,"nodes":[{"name":"4x4","show":false,"nodes":[]}]},{"name":"Convertable","show":false,"nodes":[]}]}] 

Что я до сих пор могу выбрать конечный пункт, но я не знаю, как это помогает мне до сих пор

String[] li = new String[4]; 
    li[0] = "Cars/Truck/Regular"; 
    li[1] = "Cars/Truck/4x4/Lifted"; 
    li[2] = "Cars/Jeep/4x4"; 
    li[3] = "Cars/Convertable"; 
    doAll(li); 

    public void doAll(String[] files) { 
    try { 
     for (String file : files) { 
      String[] f = file.split("/"); 
      if (f.length>1) { 
       logger.info("directory:"+file); 
       f = (String[]) ArrayUtils.removeElement(f, f[0]); 
       String temp = ""; 
       for(String ff : f) temp=temp+"/"+ff; 
       temp = temp.replaceFirst("/", ""); 
       doAll(new String[]{temp}); 
      } else if(f.length==1){ 
       logger.info("file:"+file); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+1

Попробуйте использовать Джексон. Картограф объектов в Джексоне может помочь с тем, чего вы пытаетесь достичь. – HARDI

ответ

0

Почему бы вам не создать объект и не сгенерировать json из этого объекта? Вы можете создать класс для каждого типа объекта, который у вас есть в json. Например, вы могли бы иметь класс с именем узла:

public class node() { 

    private String name; 
    private boolean show; 
    private node[] nodes; 

    //getters and setters 

} 

Затем вы можете установить свой объект со всеми вашими данными транспортного средства и использовать gson для создания своих JSON.

Gson gson = new Gson(); 
String json = gson.toJson(node); 
+0

да я понимаю это часть. но где внутри doAll я бы поставил объект? –

+0

Если я правильно понимаю, я не думаю, что вам понадобится метод doAll(), если вы используете gson. Вы можете создать новый объект узла ex) Node node = new Node(), а затем установить значения ex) node.setName («Cars») node.setShow (false) и т. Д. Затем использовать gson для генерации вашей строки json – Elaina

 Смежные вопросы

  • Нет связанных вопросов^_^