0

在这种方法中,我有一个字符串数组,即 barchartLabels。我想将此数组添加到 jsonObject:

预期输出为:

{“数据”:“[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”]“}

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(); 
}

在上述方法中,我使用 Gson 对象将 barchartLabels 转换为字符串,然后使用 jsonObject 添加它。但我得到的输出如下所示。有没有其他方法可以做到上面提到的?

{ "数据" : " [ \"一月\"、\"二月\"、\"三月\"、\"四月\"、\"五月\"、\"六月\"、\"七月\"] " }

4

1 回答 1

3

data 是 a String,而不是 a String[],所以所有的引号都被转义了。如果你想要一个String[]公正的

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

listG.toJson 将其转换为 JSON 字符串,因此当您添加它时,它就是一个字符串。跳过那一步直接添加

于 2017-06-02T11:06:33.217 回答