2017-06-02 5 views
0

Dans cette méthode, j'ai un tableau de chaînes i.e barchartLabels. Je veux ajouter ce tableau à JSONObject:comment ajouter un tableau de chaînes à jsonObject?

sortie prévue est:

{ "data": "[ "Janvier", "Février", "Mars", "Avril", "mai", « Juin », « Juillet »] "}

public String array() { 
    JsonArray roleArray = new JsonArray(); 
    String barChartLabels[] = {"January", "February", "March", "April", "May", "June", "July"}; 
    Gson listG = new Gson(); 
    JsonObject jsonObj = new JsonObject(); 
    String list2 = listG.toJson(barChartLabels); 
    jsonObj.addProperty("data", list2); 
    roleArray.add(jsonObj);  
    return jsonObj.toString(); 
} 

Dans la méthode ci-dessus j'utilise pour convertir l'objet Gson barchartLabels à chaîne puis en utilisant JSONObject ajouter. Mais je reçois la sortie comme indiqué ci-dessous. Y a-t-il un autre moyen de faire ce qui est mentionné ci-dessus?

{"data": "[\" Janvier \ ", \" Février \ ", \" Mars \ ", \" Avril \ ", \" Mai \ ", \" Juin \ ", \ "Juillet \"] "}

+2

C'est le format standard de JSON d'échapper '' 'alors ne vous inquiétez pas –

+0

Ceci est un service Web qui est mentionné ci-dessus.Sur l'interface utilisateur après avoir reçu une réponse, je reprends ce tableau de json et en l'assignant à un tableau dans l'interface utilisateur ... ce qui crée un problème ... –

+0

Ce n'est pas un problème, tout ce qui se passe est que vos '' "' 'sont échappés.Comme @Pavneet_Singh l'a mentionné, ceci est complètement standard. – Scott

Répondre

0
données

est un String, pas un String[], donc toutes les citations sont échappé. Si vous voulez un String[] juste

JsonArray data = new JsonArray(); 
    Stream.of(barChartLabels) 
     .forEach(data::add); 
    jsonObj.add("data", data); 

listG.toJson est la convertir en une chaîne JSON, donc quand vous ajoutez cela, il est une chaîne. Il suffit d'ignorer cette étape et de l'ajouter directement

+0

méthode addproperty (chaîne, chaîne) dans le jsonObject n'est pas applicable pour arguements (chaîne, chaîne []) –

+0

Vous pouvez rendre cela plus simple en sautant le tableau et en commençant par un Stream.of ("foo", "bar", "etc ...") – Novaterata

+0

méthode add (chaîne, JsonElement) dans le jsonObje ct n'est pas applicable pour arguements (string, string []) –