利用Gson解析request得到的Json字符串数组,并实现与具体对象间的转换

当利用request.getParameter()方法得到Json字符串数组后,如果想要将其转换成需要的Class对象时,可以利用Gson中自带的一些对象来解析:

ArticleBean article = new ArticleBean();
String articles = request.getParameter("articles"); 
System.out.println(articles);

控制台输出的Json字符串数组如下:得到两个对象数组

[{"articleId":44,"articleName":"三体","articleAuthor":"刘慈欣","articleType":"小说","articleUpTime":"2018-08-19 14:21:54","articleContent":"三体"},{"articleId":45,"articleName":"背影","articleAuthor":"朱自清","articleType":"散文","articleUpTime":"2018-08-19 14:22:39","articleContent":"我去买几个橘子,你就在此地不要走动"}]

这里用文章来举例ArticleBean实体类中有文章ID、作者、内容等属性。然后我们利用Gson中一些内置的对象来解析:

JsonArray jsonArray = new JsonParser().parse(articles).getAsJsonArray();

得到JsonArray对象,而JsonArray中的每一份数据都是一个JsonElement对象,我们遍历JsonArray后,然后利用gson.fromJson()方法,就可以循环体中将得到的每一份数据转成相对应的实体类对象。

List articlesArr = new ArrayList();
for (JsonElement jsonElement : jsonArray) {
    //如果想要转换成实体类对象,fromJson方法中第一个参数得是JsonElement对象,所以我们需要在前面利用JsonArray遍历来得到它。
    //运行到这一步,你就得到了ArticleBean对象!
    ArticleBean article = gson.fromJson(jsonElement,ArticleBean.class);
    //这里因为我从后台得到两个对象,所以我将它封装到List集合中以便后续操作。
    articlesArr .add(article);
}

你可能感兴趣的:(Gson)