如何为列表<类名创建 JSON 数组>

2022-09-02 05:19:42

我有一个类叫

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"}]

任何人都可以帮我得到这个吗?


答案 1

使用库将非常简单。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


答案 2

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

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