/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package uwpreloader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; /** * * @author Fechner */ public class UWJsonUrlFinder { public static ArrayList<String> getAllUrlsForJson(String json){ ArrayList<String> urls = new ArrayList<String>(); try{ JSONObject baseObject = new JSONObject(json); JSONArray projects = baseObject.getJSONArray("cat"); for(int i = 0; i < projects.length(); i++){ JSONObject project = projects.getJSONObject(i); urls.addAll(getAllUrlsForProject(project)); } } catch(JSONException e){ e.printStackTrace(); } return urls; } private static ArrayList<String> getAllUrlsForProject(JSONObject project){ ArrayList<String> urls = new ArrayList<String>(); JSONArray models = project.getJSONArray("langs"); for(int i = 0; i < models.length(); i++){ JSONObject model = models.getJSONObject(i); urls.addAll(getAllUrlsForLanguage(model)); } return urls; } private static ArrayList<String> getAllUrlsForLanguage(JSONObject language){ ArrayList<String> urls = new ArrayList<String>(); JSONArray models = language.getJSONArray("vers"); for(int i = 0; i < models.length(); i++){ JSONObject model = models.getJSONObject(i); urls.addAll(getAllUrlsForVersion(model)); } return urls; } private static ArrayList<String> getAllUrlsForVersion(JSONObject version){ ArrayList<String> urls = new ArrayList<String>(); JSONArray models = version.getJSONArray("toc"); for(int i = 0; i < models.length(); i++){ JSONObject model = models.getJSONObject(i); urls.addAll(getAllUrlsForBook(model)); } return urls; } private static ArrayList<String> getAllUrlsForBook(JSONObject book){ ArrayList<String> urls = new ArrayList<String>(); urls.add(book.getString("src")); urls.add(book.getString("src_sig")); return urls; } }