kos*_*lvp 4 java json arraylist
我有从 HTTP 请求收到的 JSON 字符串:
[
{
"id":15,
"title":"1",
"description":"desc",
"user_id":152
},
{
"id":18,
"title":"2",
"description":"desc",
"user_id":152
},
{
"id":19,
"title":"tab3",
"description":"zadanka",
"user_id":152
}
]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为对象的 ArrayList?
使用Gson
Gson gson = new Gson();
ArrayList<Object> listFromGson = gson.fromJson("json string",
new TypeToken<ArrayList<Object>>() {}.getType());
Run Code Online (Sandbox Code Playgroud)
使用杰克逊
ObjectMapper mapper = new ObjectMapper();
ArrayList<Object> listFromJackson = mapper.readValue("json string",
new TypeReference<ArrayList<Object>>(){});
Run Code Online (Sandbox Code Playgroud)
如果你可以将 pojo 定义为
public class Example {
private Integer id;
private String title;
private String description;
private Integer userId;
// setters / getters
}
Run Code Online (Sandbox Code Playgroud)
然后
ArrayList<Example> listFromGson = gson.fromJson("json string",
new TypeToken<ArrayList<Example>>() {}.getType());
ArrayList<Example> listFromJackson = mapper.readValue("json string",
new TypeReference<ArrayList<Example>>(){});
Run Code Online (Sandbox Code Playgroud)
另外,您应该更喜欢使用List而不是ArrayList.
你需要声明一个 pojo
class Data{
String id;
String title;
String description;
String userId;
//Generate setter an getter
}
Run Code Online (Sandbox Code Playgroud)
对 json 进行迭代,如下所示:
JSONArray jsonArr = new JSONArray("[your JSON Stirng]");
List<Data> dataList = new ArrayList<Data>();
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject jsonObj = jsonArr.getJSONObject(i);
Data data = new Data();
data.setId(jsonObj.getString("id"));
data.setTitle(jsonObj.getString("title"));
data.setDescription(jsonObj.getString("description"));
data.setUserId(jsonObj.getString("user_id"));
dataList.add(data);
}
Run Code Online (Sandbox Code Playgroud)
您还需要 json jar。你可以从这里下载