2016-06-23 12 views
-1

Ich versuche, den stanford-nlp-Ausgang nach json zu pipen. Ich habe es mit dem einfachen JSON versucht und alles funktioniert gut. Wenn ich versuche, die javax.json zu verwenden, wie untenjavax json toString gibt immer noch den Speicherwert zurück

gezeigt
public static void main(String[] args) throws IOException { 

      JsonObjectBuilder parserJSONObj = stanfordNLPParser(processedQuestion); 
      System.out.println(parserJSONObj.toString()); 

     }  

    public static JsonObjectBuilder stanfordNLPParser (String processedQuestion)throws IOException { 

      Properties props = new Properties(); 
      props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, sentiment"); 
      StanfordCoreNLP pipeline = new StanfordCoreNLP(props); 

      JsonObjectBuilder parserJSONObj = Json.createObjectBuilder(); 


      Annotation annotation = pipeline.process(processedQuestion); 
      List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class); 
      for (CoreMap sentence : sentences) {   
       for (CoreMap quesGentokens : sentence.get(TokensAnnotation.class)) { 
        String quesGenToken = quesGentokens.toString(); 
        String quesGenPOS = quesGentokens.get(PartOfSpeechAnnotation.class); 

          parserJSONObj.add(quesGenToken, Json.createArrayBuilder() 
          .add(Json.createObjectBuilder() 
          .add("POS", quesGenPOS))); 

          parserJSONObj.build();    
          System.out.println(parserJSONObj.toString()); 
       } 

      } 
      return parserJSONObj;   
     } 

Ausgang:

[email protected] 

Ich habe einige Fragen zu diesem Thema jetzt:

  1. auch das Hinzufügen toString zeigt nur den Speicherplatz .
  2. ist der Rückgabetyp JsonObjectBuilder rechten Rückgabetyp (In Betracht, weitere Vorgänge auf dem Json).

Dank

+0

Sie drucken den Builder, nicht das JSON-Objekt, das vom Builder erstellt wurde. –

Antwort

0

denke ich, Sie JsonObject von dieser Methode zurückgeben soll. Sie können JsonObject erhalten, indem mit:

JsonObject json = parserJSONObj.build();  

Wenn Sie toString() auf dieser json tun, werden Sie tatsächliche JSON erhalten auf der Konsole gedruckt.

Verwandte Themen