如何为 List<Class name> 创建 JSONArray
Posted
技术标签:
【中文标题】如何为 List<Class name> 创建 JSONArray【英文标题】:How to Create JSONArray for a List<Class name> 【发布时间】: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"]
谁能帮我搞定这个?
【问题讨论】:
【参考方案1】:如下创建 JSONArray。
JSONArray jsArray = new JSONArray(arrayList);
【讨论】:
如果那样的话。我得到了一个充满空值的 JSONArray。【参考方案2】:我认为您不需要下载 jettison jar 文件。
使用JSONArray
和JSONObject
,您可以轻松将该列表转换为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 库比 JSONObject
和 JSONArray
实现更易于使用。
【讨论】:
【参考方案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】:试试gson:Serializing-and-Deserializing-Generic-Types
【讨论】:
以上是关于如何为 List<Class name> 创建 JSONArray的主要内容,如果未能解决你的问题,请参考以下文章
如何为绑定到 List<T> 的 dataGridView 设置 columnNames?
Java 如何为 List<Car> 构建 SQL SELECT 语句?
如何为 List<List<List<Integer>>> nums = new ArrayList<List<List<Integer>&