Gson解析json数组

数组格式如下:
{
"reason":"success",
"result":[
{
"day":"1/1",
"date":"-45年1月1日",
"title":"罗马共和国开始使用儒略历",
"e_id":"1"
},
{
"day":"1/1",
"date":"404年1月1日",
"title":"东晋将领桓玄正式称帝,国号楚",
"e_id":"2"
},
{
"day":"1/1",
"date":"860年1月1日",
"title":"西法兰克国王厄德一世诞生",
"e_id":"3"
},
]
}
这是解析单个元素的代码,想知道该怎么以这种格式解析数组?
public static String parseContent(String transApiResponseText) {
String result = "";
JsonElement jsonElement= JsonParser.parseString(transApiResponseText);
JsonObject jsonObject=jsonElement.getAsJsonObject();

    int errorCode=jsonObject.get("code").getAsInt();
    JsonObject RequireResult=jsonObject.get("data").getAsJsonObject();
    result=RequireResult.get("content").getAsString();
    return result;
}
String jsonStr = "{\"reason\":\"success\",\"result\":[{\"day\":\"1/1\",\"date\":\"-45年1月1日\",\"title\":\"罗马共和国开始使用儒略历\",\"e_id\":\"1\"},{\"day\":\"1/1\",\"date\":\"404年1月1日\",\"title\":\"东晋将领桓玄正式称帝,国号楚\",\"e_id\":\"2\"},{\"day\":\"1/1\",\"date\":\"860年1月1日\",\"title\":\"西法兰克国王厄德一世诞生\",\"e_id\":\"3\"}]}";
        Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {
        });
        JSONArray resultArray = (JSONArray) map.get("result");
        resultArray.forEach(System.out::println);
        // 获取数组元素的属性
        ((JSONObject) resultArray.get(0)).getString("title");
        System.out.println(map);

题主你好,一般实际开发中,在格式确定的情况下,一般不建议转为JsonObject或者Map,后期很难维护。
可以参考我下面写的代码

//生成gson对象
 Gson gson = new GsonBuilder().create();
//将字符串s转为指定的类,并通过类的字段来获取数据
 final PojoWrapper pojoWrapper = gson.fromJson(s, PojoWrapper.class);
//打印结果
 System.out.println(gson.toJson(pojoWrapper));

类定义参考下面,字段类型可以按照自己的需求修改。


public class PojoWrapper {
        private String reason;
        private List<MyPojo> result;

        private class MyPojo {
            private String day;
            private String date;
            private String title;
            private String e_id;

            public String getDay() {
                return day;
            }

            public void setDay(String day) {
                this.day = day;
            }

            public String getDate() {
                return date;
            }

            public void setDate(String date) {
                this.date = date;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }

            public String getE_id() {
                return e_id;
            }

            public void setE_id(String e_id) {
                this.e_id = e_id;
            }
        }

        public String getReason() {
            return reason;
        }

        public void setReason(String reason) {
            this.reason = reason;
        }

        public List<MyPojo> getResult() {
            return result;
        }

        public void setResult(List<MyPojo> result) {
            this.result = result;
        }
    }