Gson使用总结

以gson-2.3.1.jar为例

编写Article和Category对象

package com.zns.bean;

public class Article {
    private int articleid;
    private String articlename;
    public int getArticleid() {
        return articleid;
    }
    public void setArticleid(int articleid) {
        this.articleid = articleid;
    }
    public String getArticlename() {
        return articlename;
    }
    public void setArticlename(String articlename) {
        this.articlename = articlename;
    }
    public Article() {
        super();
    }
    public Article(int articleid, String articlename) {
        super();
        this.articleid = articleid;
        this.articlename = articlename;
    }
    @Override
    public String toString() {
        return "Article [articleid=" + articleid + ", articlename=" + articlename + "]";
    }
}
package com.zns.bean;

import java.util.List;

public class Category {
    private int categoryid;
    private String categoryname;
    private List<Article> articles;
    public int getCategoryid() {
        return categoryid;
    }
    public void setCategoryid(int categoryid) {
        this.categoryid = categoryid;
    }
    public String getCategoryname() {
        return categoryname;
    }
    public void setCategoryname(String categoryname) {
        this.categoryname = categoryname;
    }
    public List<Article> getArticles() {
        return articles;
    }
    public void setArticles(List<Article> articles) {
        this.articles = articles;
    }
    public Category() {
        super();
    }
    public Category(int categoryid, String categoryname, List<Article> articles) {
        super();
        this.categoryid = categoryid;
        this.categoryname = categoryname;
        this.articles = articles;
    }
    @Override
    public String toString() {
        return "Category [categoryid=" + categoryid + ", categoryname=" + categoryname + ", articles=" + articles + "]";
    }
    
}
// bean转json
        Gson gson = new Gson();
        Article article = new Article(1, "文章1");
        String json = gson.toJson(article);
        System.out.println(json);
        // json转bean
        Article obj = gson.fromJson(json, Article.class);
        System.out.println(obj);
        
        // list对象转json
        Gson gson = new Gson();
        List<Article> list = new ArrayList<Article>();
        list.add(new Article(1, "a"));
        list.add(new Article(2, "b"));
        String json = gson.toJson(list);
        System.out.println(json);
        // json转list对象
        List<Article> list2 = gson.fromJson(json, new TypeToken<List<Article>>() {
        }.getType());
        for (Article article : list2) {
            System.out.println(article);
        }
        
        // map转json
        Gson gson = new Gson();
        Map<String, Object> map1 = new HashMap<String, Object>();
        Article article = new Article(1, "aaa");
        map1.put("id", "1");
        map1.put("article", article);
        String json = gson.toJson(map1);
        System.out.println(json);
        // json转map
        Map<String, Object> map2 = gson.fromJson(json, new TypeToken<Map<String, Object>>() {
        }.getType());
        System.out.println(map2);
        
        // 复杂bean转json
        Gson gson = new Gson();
        List<Article> articles = new ArrayList<Article>();
        articles.add(new Article(1, "a"));
        articles.add(new Article(2, "b"));
        Category category = new Category(1, "分类1", articles);
        String json = gson.toJson(category);
        System.out.println(json);
        // json转复杂bean
        Category obj = gson.fromJson(json, Category.class);
        System.out.println(obj);
        
        // 判断json中是否有属性
        String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
        String propertyName = "name";
        boolean isContains = false;
        JsonParser jsonParser = new JsonParser();
        JsonElement element = jsonParser.parse(json);
        JsonObject jsonObj = element.getAsJsonObject();
        isContains = jsonObj.has(propertyName);
        System.out.println(isContains);
        
        // 修改json中的属性
        String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
        String propertyName = "name";
        Object propertyValue = "aaaa";
        JsonParser jsonParser = new JsonParser();
        JsonElement element = jsonParser.parse(json);
        JsonObject jsonObj = element.getAsJsonObject();
        jsonObj.remove(propertyName);
        jsonObj.addProperty(propertyName, new Gson().toJson(propertyValue));
        json = jsonObj.toString();
        System.out.println(json);
        
        // 向json中添加属性
        String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
        String propertyName = "desc";
        Object propertyValue = "json各种技术的调研";
        JsonParser jsonParser = new JsonParser();
        JsonElement element = jsonParser.parse(json);
        JsonObject jsonObj = element.getAsJsonObject();
        jsonObj.addProperty(propertyName, new Gson().toJson(propertyValue));
        json = jsonObj.toString();
        System.out.println(json);
        
        // 除去json中的某个属性
        String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
        String propertyName = "id";
        JsonParser jsonParser = new JsonParser();
        JsonElement element = jsonParser.parse(json);
        JsonObject jsonObj = element.getAsJsonObject();
        jsonObj.remove(propertyName);
        json = jsonObj.toString();
        System.out.println(json);
        
        // 从json串中获取属性
        String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
        String propertyName = "id";
        String propertyValue = "";
        try {
            JsonParser jsonParser = new JsonParser();
            JsonElement element = jsonParser.parse(json);
            JsonObject jsonObj = element.getAsJsonObject();
            propertyValue = jsonObj.get(propertyName).toString();
        } catch (Exception e) {
            propertyValue = null;
        }
        System.out.println(propertyValue);
        
        // 判断字符串是否是json,通过捕捉的异常来判断是否是json
        String json1 = "[{\"id\":\"1\",\"name\":\"Json技术\"},{\"id\":\"2\",\"name\":\"java技术\"}]";
        String json2 = "{\"id\":1,\"name\":\"Json技术\"}";
        boolean jsonFlag;
        try {
            new JsonParser().parse(json1).getAsJsonObject();
            jsonFlag = true;
        } catch (Exception e) {
            jsonFlag = false;
            System.out.println(e.toString());
        }
        System.out.println(jsonFlag);
        // json1 输出false 是数组
        // json2 输出true

猜你喜欢

转载自www.cnblogs.com/zengnansheng/p/10389281.html