2016-06-02 10 views
-2

Ich rufe einen Sonar-Webservice und bekomme unter Ausgabe im JSON-Format.Parse Json-Ausgabe von Sonar

[ 
    { 
     "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%" 
     } 
     ] 
    } 
] 

Jetzt möchte ich diese Ausgabe in Java analysieren und Werte von Datum, ncloc, test_success_density und Abdeckung holen. Wie kann ich es tun? Ich habe versucht, viele Java-Apis, aber Probleme beim Abrufen von Werten des oben genannten Feldes.

Antwort

0

ebenfalls tun,

HINWEIS: include richtigen Jackson Jar (i verwenden jackson-Core-2.2.3.jar)

Ihre Hauptklasse der Haupt Methode sein sollte .....

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

Und lassen Sie uns sagen, Ihr Bean.java wird,

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; 
    } 

} 

Tun Sie das oben genannte Ding, funktioniert perfekt ... !!