2015-04-02 4 views
0

У меня есть следующий JSon файлуява JSON массив разборе с Джексоном

[{"key1":"value11", "key2":"value12"},{"key1":"value21", "key2":"value22"},...] 

Как я могу получить каждый JSon объект из этого массива с помощью Джексона. Одно замечание здесь заключается в том, что json-файл Big ~ 700MB. Я хочу читать объекты JSON один за другим и загружать данные в базу данных

step 1: {"key1":"value11", "key2":"value12"} 
step 2: {"key1":"value21", "key2":"value22"} 
... 

поэтому мне нужно загрузить всю эту информацию в базу данных. скажем, у меня есть одна таблица в базе данных:

create table mytbl 
(
    key1 varchar2(100), 
    key2 varchar2(100) 
) 

поэтому каждый ключ должен войти в его колонку.

+0

Если вход JSON является то, что большая, то вы хотите использовать потоковый API; это выполнимо, теперь вам нужно быть более точным о том, чего вы действительно хотите. Чтение элемента легко, что с ним связано. – fge

+0

Я добавил еще несколько объяснений, может быть, это поможет –

ответ

0

Я хочу поделиться тем, как я понимаю, что, может быть, кто-то будет использовать ...

ObjectMapper mapper = new ObjectMapper(); 
JsonParser parser = mapper.getJsonFactory().createJsonParser(new File(ConfigurationManager.jsonfile)); 

JsonToken token = parser.nextToken(); 

if (token == null) { 
    System.out.println("no json file"); 
} 

if (!JsonToken.START_ARRAY.equals(token)) { 
    System.out.println("Expected an array"); 
} 

while (!JsonToken.END_ARRAY.equals(parser.nextToken())) { 
    System.out.println(parser.readValueAsTree().toString())); 

    // parse json object here 
}  

parser.close(); 
Смежные вопросы