Java 如何为列表创建JSONArray<;类名>;

Java 如何为列表创建JSONArray<;类名>;,java,json,list,arraylist,Java,Json,List,Arraylist,我有一门课叫 class Student { String name; String age; } 我有一个返回列表对象的方法,比如 public List<Student> getList(){ List<Student> li =new ArrayList(); .... li.add(new Student('aaa','12')); ... return li; } 有人能帮我弄到这个吗?试试gson:json库可能就是您

我有一门课叫

class Student {
   String name;
   String age;
}
我有一个返回列表对象的方法,比如

public List<Student> getList(){

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

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

 return li;    
}

有人能帮我弄到这个吗?

试试gson:

json库可能就是您要找的库。您可以找到som的使用示例。

您必须在项目中包含
抛弃
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();
}

我认为您不需要下载抛弃jar文件


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

当您想要将对象直接映射到JSON或想要将JSON转换为对象时,您可以使用GSON库。这将给你更多的灵活性和控制

下载链接-


教程链接-

使用
Gson
库将非常简单

从JSON字符串到对象的ArrayList,如下所示:

Type listType = 
     new TypeToken<ArrayList<Student>>(){}.getType();
ArrayList<Student> yourClassList = new Gson().fromJson(jsonArray, listType);
ArrayList<Student> sampleList = new ArrayList<Student>();
String json = new Gson().toJson(sampleList);
类型listType=
新的TypeToken(){}.getType();
ArrayList yourClassList=new Gson().fromJson(jsonArray,listType);
从对象的数组列表到Json,如下所示:

Type listType = 
     new TypeToken<ArrayList<Student>>(){}.getType();
ArrayList<Student> yourClassList = new Gson().fromJson(jsonArray, listType);
ArrayList<Student> sampleList = new ArrayList<Student>();
String json = new Gson().toJson(sampleList);
ArrayList sampleList=new ArrayList();
字符串json=new Gson().toJson(sampleList);

Gson库比
JSONObject
JSONArray
实现更易于使用。

创建JSONArray,如下所示


JSONArray-jsArray=newjsonarray(arrayList)

您是否愿意详细说明@Juniad答案是什么?目前还没有。