2017-06-13 75 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()); 

并将其返回。