Red Planet
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всех приветствую. Необходимо считать из файлов JSON информацию и вставить ее в БД. Для примера пусть это будут страны и международные организации. Также есть JSON с континентами. Не хотелось бы мешать логику парсинга JSON и вставки в БД. Если бы можно было вставлять по одной стране, континенту и организации, то сошел бы пример с Википедии. Вставлять необходимо все записи сразу, а не по одной, так как bulk insert работает в разы быстрее. Код: class JsonParser { // Names used in the JSON files private static final String NAME = "name"; private static final String ID = "id"; private static final String ORG_IDS = "org_ids"; // File extension private static final String DOT = "."; private static final String JSON = "json"; private static final String SPACE = " "; private static final String COMMA = ","; private static final String COLON = ":"; private List<Country> mCountries; private List<Organization> mOrgs; private List<Continent> mContinents; public JsonParser(Context context) { mCountries = new ArrayList<JsonParser.Country>(); mOrgs = new ArrayList<JsonParser.Organization>(); mContinents = new ArrayList<JsonParser.Continent>(); } private List<Country> readCountriesArray() throws IOException { // TODO: implement it return mCountries; } private List<Organization> readOrgsArray() throws IOException { // TODO: implement it return mOrgs; } /** * Common base class for all the entities read from JSON file. The entities are {@link Country}, * {@link Organization}, and {@link Continent} * * @author dmitriev-ma * */ abstract class BaseEntity { private String name; private long id; private BaseEntity(long id, String name) { this.id = id; this.name = name; } public String getName() { return name; } @Override public String toString() { return ID + COLON + SPACE + id + COMMA + SPACE + NAME + COLON + SPACE + name; } } class Country extends BaseEntity { private List<Long> orgsIds; public Country(long id, String name, List<Long> orgsIds) { super(id, name); this.orgsIds = new ArrayList<Long>(); this.orgsIds.addAll(orgsIds); } public List<Long> getOrgsIds() { return orgsIds; } @Override public String toString() { return super.toString() + COMMA + SPACE + ORG_IDS + SPACE + orgsIds; } } class Organization extends BaseEntity { private Organization(long id, String name) { super(id, name); } } class Continent extends BaseEntity { private Continent(long id, String name) { super(id, name); } } } |
|