2016-06-02 6 views
-2

私はsonar webserviceを呼び出し、下にjson形式で出力しています。SonarのJson出力を解析します。

[ 
    { 
     "id":10252, 
     "uuid":"ca49aeed-de29-41a1-b0e2-e2b7c7d1b6c5", 
     "key":"UTILITY", 
     "name":"UTILITY", 
     "scope":"PRJ", 
     "qualifier":"VW", 
     "date":"2012-05-02T05:07:04-0400", 
     "creationDate":"2009-03-12T09:03:35-0400", 
     "lname":"UTILITY", 
     "msr":[ 
     { 
      "key":"ncloc", 
      "val":253603.0, 
      "frmt_val":"253,603" 
     }, 
     { 
      "key":"test_success_density", 
      "val":85.5, 
      "frmt_val":"85.5%" 
     }, 
     { 
      "key":"coverage", 
      "val":96.0, 
      "frmt_val":"96.0%" 
     } 
     ] 
    } 
] 

この出力をjavaで解析し、日付、ncloc、test_success_density、およびカバレッジの値を取得します。どうしたらいいですか?私は多くのJava APIを試しましたが、上記のフィールドの値を取得中に問題が発生しました。

答えて

0

NOTEは、同様に行います。適切ジャクソンジャーが含まれ(私が使用ジャクソンコア-2.2.3.jar)

あなたのメインクラスのmainメソッドがあるべき.....

public static void main(String[] args) { 

     ObjectMapper mapper = new ObjectMapper(); 
     String jsonInString = "[ {\"id\":10252, \"uuid\":\"ca49aeed-de29-41a1-b0e2-e2b7c7d1b6c5\", \"key\":\"UTILITY\", \"name\":\"UTILITY\", \"scope\":\"PRJ\", \"qualifier\":\"VW\", \"date\":\"2012-05-02T05:07:04-0400\", \"creationDate\":\"2009-03-12T09:03:35-0400\", \"lname\":\"UTILITY\", \"msr\":[  {\"key\":\"ncloc\",\"val\":253603.0,\"frmt_val\":\"253,603\"},  {\"key\":\"test_success_density\",\"val\":85.5,\"frmt_val\":\"85.5%\"},   {\"key\":\"coverage\",\"val\":96.0,\"frmt_val\":\"96.0%\"}  ] } ]"; 

     //JSON from String to Object 
     try { 
      Bean[] objs = mapper.readValue(jsonInString, Bean[].class); 
      for(Bean b : objs){ 
       //System.out.println(b); here you have Bean Object's Array and you can do whatever you want... 
      } 
     } catch (JsonParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (JsonMappingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

とのあなたのBean.javaは、

なりましょう
import java.util.Date; 
import java.util.List; 

public class Bean { 

    private long id; 
    private String uuid; 
    private String key; 
    private String name; 
    private String scope; 
    private String qualifier; 
    private Date date; 
    private Date creationDate; 
    private String lname; 
    private List<Msr> msr; 
    public long getId() { 
     return id; 
    } 
    public void setId(long id) { 
     this.id = id; 
    } 
    public String getUuid() { 
     return uuid; 
    } 
    public void setUuid(String uuid) { 
     this.uuid = uuid; 
    } 
    public String getKey() { 
     return key; 
    } 
    public void setKey(String key) { 
     this.key = key; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getScope() { 
     return scope; 
    } 
    public void setScope(String scope) { 
     this.scope = scope; 
    } 
    public String getQualifier() { 
     return qualifier; 
    } 
    public void setQualifier(String qualifier) { 
     this.qualifier = qualifier; 
    } 
    public Date getDate() { 
     return date; 
    } 
    public void setDate(Date date) { 
     this.date = date; 
    } 
    public Date getCreationDate() { 
     return creationDate; 
    } 
    public void setCreationDate(Date creationDate) { 
     this.creationDate = creationDate; 
    } 
    public String getLname() { 
     return lname; 
    } 
    public void setLname(String lname) { 
     this.lname = lname; 
    } 
    public List<Msr> getMsr() { 
     return msr; 
    } 
    public void setMsr(List<Msr> msr) { 
     this.msr = msr; 
    } 

    @Override 
    public String toString() { 
     return this.id + " : " + 
       this.uuid + " : " + 
       this.key + " : " + 
       this.name + " : " + 
       this.scope + " : " + 
       this.qualifier + " : " + 
       this.date + " : " + 
       this.creationDate + " : " + 
       this.lname + " : " + 
       this.msr ; 
    } 

} 

class Msr{ 

    private String key; 
    private String val; 
    private String frmt_val; 

    public String getKey() { 
     return key; 
    } 
    public void setKey(String key) { 
     this.key = key; 
    } 
    public String getVal() { 
     return val; 
    } 
    public void setVal(String val) { 
     this.val = val; 
    } 
    public String getFrmt_val() { 
     return frmt_val; 
    } 
    public void setFrmt_val(String frmt_val) { 
     this.frmt_val = frmt_val; 
    } 

    @Override 
    public String toString() { 
     return this.key + " : " + this.val + " : " + this.frmt_val; 
    } 

} 

上記のことは、完璧に動作します... !!

関連する問題