我如何将字符串数组添加到JSON

时间:2014-03-24 15:22:25

标签: java arrays json arraylist

我目前正在servlet中编写一些代码,从数据库中获取数据并将其返回给客户端。我遇到的问题是插入我收集的日期数组并将它们添加到我将返回客户端的JSON对象中。

以下是我正在尝试的代码,但它不断出现错误

dates = ClassdatesDAO.getdate(dates);
ArrayList<String> ClassDates = new ArrayList<String>();
ClassDates = dates.getClassdates();
response.setContentType("application/json");
JSONObject Dates = new JSONObject();
Dates.put("dates", new JSONArray(ClassDates));

在我的IDE中,我在JSONArray中的ClassDates上收到此错误

  

构造函数JSONArray(ArrayList)未定义

2 个答案:

答案 0 :(得分:1)

您正在传递ArrayList个实例而不是Array。因此,将列表转换为数组,然后将其作为参数传递,如此

Dates.put("dates", new JSONArray(ClassDates.toArray(new String[ClassDates.size()])));

注意:json API的方法签名接受java.util.Collection。所以,您正在使用其他一些库或旧版本

答案 1 :(得分:0)

      JSONObject Dates = new JSONObject();
      JSONArray datesJSONArray = new JSONArray();
      for (String date : ClassDates)
          datesJSONArray.put(date);
      try {
        Dates.put("dates", datesJSONArray);
      } catch (JSONException e) {
        e.printStackTrace();
      }