2015-04-02 62 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();