【问题标题】:How to Create JSONArray for a List<Class name>如何为 List<Class name> 创建 JSONArray
【发布时间】:2012-06-03 13:01:41
【问题描述】:

我有一门课叫

class Student {
   String name;
   String age;
}

我有一个返回 List 对象的方法,例如

public List<Student> getList(){

 List<Student> li =new ArrayList();
 ....

 li.add(new Student('aaa','12'));
 ... 

 return li;    
}

我需要像这样将该列表转换为 JSONArray

[{"name":"sam","age":"12"},{"name":"sri","age":"5"}]

谁能帮我搞定这个?

【问题讨论】:

    标签: java json list arraylist


    【解决方案1】:

    如下创建 JSONArray。

    JSONArray jsArray = new JSONArray(arrayList);

    【讨论】:

    • 如果那样的话。我得到了一个充满空值的 JSONArray。
    【解决方案2】:

    我认为您不需要下载 jettison jar 文件。

    使用JSONArrayJSONObject,您可以轻松将该列表转换为JSON 对象,如@Juniad answer

    【讨论】:

    • 您愿意详细说明@Juniad 的答案是什么吗?它目前不存在。
    【解决方案3】:

    您必须在项目中包含 jettison jar 并导入所需的类。

    JSONObject jObject = new JSONObject();
    try
    {
        JSONArray jArray = new JSONArray();
        for (Student student : sudentList)
        {
             JSONObject studentJSON = new JSONObject();
             studentJSON.put("name", student.getName());
             studentJSON.put("age", student.getAge());
             jArray.put(studentJSON);
        }
        jObject.put("StudentList", jArray);
    } catch (JSONException jse) {
        jse.printStacktrace();
    }
    

    【讨论】:

      【解决方案4】:

      使用Gson库会很简单。

      从 JSON 字符串到对象的 ArrayList 为:

      Type listType = 
           new TypeToken<ArrayList<Student>>(){}.getType();
      ArrayList<Student> yourClassList = new Gson().fromJson(jsonArray, listType);
      

      对象数组列表中的 Json 为:

      ArrayList<Student> sampleList = new ArrayList<Student>();
      String json = new Gson().toJson(sampleList);
      

      Gson 库比 JSONObjectJSONArray 实现更易于使用。

      【讨论】:

        【解决方案5】:

        当你想直接将 Object 映射到 json 或者想将 json 转换为 object 时,你可以使用 GSON 库。这将为您提供更大的灵活性和控制力。

        下载链接 - http://code.google.com/p/google-gson/

        教程链接-http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

        【讨论】:

          【解决方案6】:

          json-lib 可能是您正在寻找的库。你可以找到一些使用here的例子。

          【讨论】:

            【解决方案7】:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-01-02
              • 1970-01-01
              • 2013-10-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多