可以说我有自定义对象的名单如下:ArrayList<GroupItem>
这里GroupItem
是一些具有类int
和String
变量.
我到目前为止尝试了Gson
库,但这并不是我想要的.
ArrayList<GroupItem> groupsList = /* ... */
Gson gson = new Gson();
JsonElement element = gson.toJsonTree(groupsList, new TypeToken<ArrayList<GroupItem>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)
我的目标是以JSONArray
某种方式得到(org.Json.JSONArray).有任何想法吗?
[编辑]
我的项目是带有基于API的Cordova的Android org.Json.JSONArray
我想写一些通用的方法将实例转换为JSONArray
/JSONObject
谢谢,
sna*_*ggs 18
这种方式对我有用:
将所有列表转换为String.
String element = gson.toJson(
groupsList,
new TypeToken<ArrayList<GroupItem>>() {}.getType());
Run Code Online (Sandbox Code Playgroud)
JSONArray
从String 创建:
JSONArray list = new JSONArray(element);
Run Code Online (Sandbox Code Playgroud)
org.json
Android中包含的基础类没有任何与将Java POJO转换为JSON或从JSON转换相关的功能.
如果你有一个class(List<GroupItem>
)的列表,你绝对需要将它转换为org.json.JSONArray
你有两个选择:
A)使用Gson或Jackson转换为JSON,然后将该JSON解析为JSONArray
:
List<GroupItem> list = ...
String json = new Gson().toJson(list);
JSONArray array = new JSONArray(json);
Run Code Online (Sandbox Code Playgroud)
B)编写代码以创建它将包含在Java对象中JSONArray
的JSONObject
s:
JSONArray array = new JSONArray();
for (GroupItem gi : list)
{
JSONObject obj = new JSONObject();
obj.put("fieldName", gi.fieldName);
obj.put("fieldName2", gi.fieldName2);
array.put(obj);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48502 次 |
最近记录: |