2016-07-02 30 views
-1

我有以下的有效JSON(我测试了jsonlint.com):如何解析简单的JSON我JAVA

{ 
"Structure": { 
    "paper": "Paper", 
    "solid_reviewer": "Solid Reviewer", 
    "second_reviewer": "2. Reviewer", 
    "third_reviewer": "3. Reviewer" 
}, 
"ReviewerGroup": { 
    "3457": { 
     "paper": "3457", 
     "solid_reviewer": { 
      "druidkey": "168", 
      "match": "Interest match" 
     }, 
     "second_reviewer": { 
      "druidkey": "192", 
      "match": "Interest match" 
     }, 
     "third_reviewer": { 
      "druidkey": "155", 
      "match": "Interest match" 
     } 
    }, 
    "3458": { 
     "paper": "3458", 
     "solid_reviewer": { 
      "druidkey": "229", 
      "match": "Interest match" 
     }, 
     "second_reviewer": { 
      "druidkey": "145", 
      "match": "Interest match" 
     }, 
     "third_reviewer": { 
      "druidkey": "123", 
      "match": "Interest match" 
     } 
    }, 
    "275": { 
     "paper": "275", 
     "solid_reviewer": { 
      "druidkey": "999", 
      "match": "Interest match" 
     }, 
     "second_reviewer": { 
      "druidkey": "412", 
      "match": "Interest match" 
     }, 
     "third_reviewer": { 
      "druidkey": "713", 
      "match": "Interest match" 
     } 
    } 
}, 
"failedPapers": {} 
} 

在PHP中,解码此我只是做:

$response = json_decode($response); 

和我可以遍历$ response对象:

foreach ($response->ReviewerGroup as $r){ 
    $paperRev1 = $paperReviewDAO->find(**$r->paper**, 1); 
    $revConf = $revConfDAO->findRevConfFromReviewer($confId,    
    **$r->solid_reviewer->druidkey**); 
. 
. 
} 

但是它在Java中似乎要复杂得多。

我见过很多关于如何读取一个对象或对象数组的例子。

但是,如何获取所有'ReviewerGroup'(RG)对象并遍历它们?我需要从每个对象中提取信息,并将数据插入数据库(我知道该怎么做......)作为每个RG对象的实体。

我不在乎使用什么JSON库。我已经看过GSON和杰克逊。

感谢您的任何意见和想法,...

/ 金

回答

-1

在Java(与GSON)它是如此简单:

Map<String, Object> result = new Gson().fromJson(response, Map.class); 

您可以提供自己的类如第二个参数,在这种情况下,它将被反序列化到该类的新实例中。

+0

这和Jackson很相似,除了它是“readValue”和“ObjectMapper” –