2017-06-13 153 views
0

我有多個控制檯日誌。 ArrayBuilder本身的「AB」日誌給了我下面的輸出是正確的輸出。但是,ArrayBuilder輸入的日誌給了我一個空白的[]。 爲什麼JsonArrayBuilder沒有返回正確的輸出?JsonArrayBuilder給出空白輸出

"AB[{"ingredientnaam":"Banaan","calorieen":89,"vet":0.9,"verzadigd_vet":0.3,"eiwit":1.2,"koolhydraten":20.4,"vezels":1.9,"zout":0.0}]"

爲ArrayBuilder

JsonArray ingredientArray = buildJsonIngredientArray(service.getToday(gebruikersnaam, datum)); 
System.out.println(ingredientArray.toString()); 
return ingredientArray.toString(); 

我JsonArrayBuilder

private JsonArray buildJsonIngredientArray(List<Dagboek> list) { 
    JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder(); 

    for (Dagboek d : list) { 
     Ingredient c = d.getIngredient(); 
     JsonObjectBuilder job = Json.createObjectBuilder(); 
     job.add("ingredientnaam", c.getIngredientnaam()); 
     job.add("calorieen", c.getCalorieen()); 
     job.add("vet", c.getVet()); 
     job.add("verzadigd_vet", c.getVerzadigd_vet()); 
     job.add("eiwit", c.getEiwit()); 
     job.add("koolhydraten", c.getKoolhydraten()); 
     job.add("vezels", c.getVezels()); 
     job.add("zout", c.getZout()); 

     jsonArrayBuilder.add(job); 
    } 
    System.out.println("AB" + jsonArrayBuilder.build()); 
    return jsonArrayBuilder.build(); 
} 
+2

這似乎不太可能,但可能會在調用'build'後清除內部數組。嘗試存儲這裏使用的構建的返回值:'System.out.println(「AB」+ jsonArrayBuilder.build());'並返回它。 (全面披露,不知道這是否會奏效) –

+0

@NeilLocketz到底什麼,我不明白爲什麼,但它修復了哈哈。謝謝一堆! –

+0

沒問題,我也會回答這個問題。 –

回答

1

輸入它可能會清除內部數組你叫build後。 雖然我在文檔中找不到任何關於此的內容。

嘗試存儲這裏用於構建返回值:

System.out.println("AB" + jsonArrayBuilder.build()); 

並將其返回。