2017-06-13 1 views
0

J'ai plusieurs journaux de consoles. Le journal "AB" dans le ArrayBuilder lui-même me donne la sortie ci-dessous qui est la sortie correcte. Mais le journal dans l'entrée pour ArrayBuilder me donne un blanc []. Pourquoi JsonArrayBuilder ne renvoie pas la sortie correcte?JsonArrayBuilder donne une sortie vide

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

Entrée pour la ArrayBuilder

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

Mon 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

Cela semble peu probable, mais il se peut que le tableau interne soit effacé après l'appel de 'build'. Essayez de stocker la valeur de retour pour la construction utilisée ici: 'System.out.println (" AB "+ jsonArrayBuilder.build());', et le retourner. (divulgation complète, aucune idée si cela fonctionnera) –

+0

@NeilLocketz Que diable, je ne comprends pas pourquoi mais il a fixé haha. Merci beaucoup! –

+0

Pas de problème, je vais répondre à la question aussi. –

Répondre

1

Il pourrait dégagerons le tableau interne après l'appel build. Je n'ai rien trouvé à ce sujet dans la documentation.

Essayez stocker la valeur de retour pour la construction utilisée ici:

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

et retour.