2015-04-02 96 views
0

解析我有以下的JSON文件Java的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 2015-04-02 13:05:05

+0

我加了一些解釋,也許這會有所幫助 – 2015-04-02 13:14:44

回答

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();