如何将字符串数组添加到jsonObject?

时间:2017-06-02 10:47:21

标签: java json gson jsonobjectrequest

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

预期输出为:

  

{"数据" :" [" 1月"," 2月"," 3月"," 4月"," 5月","六月","七月" ]" }

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添加它。但我得到的输出如下所示。还有其他方法可以做上面提到的吗?

  

{"数据" :" [\" 1月\",\" 2月\",\" 3月\",\" 4月\",\ " 5月\",\" 6月\",\" 7月\" ]" }

1 个答案:

答案 0 :(得分:2)

数据是String,而不是String[],因此所有引号都会被转义。如果你想要String[]只是

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

listG.toJson正在将其转换为JSON字符串,因此当您添加它时,它是一个字符串。只需跳过该步骤并直接添加

即可