• 注册
当前位置:1313e > 默认分类 >正文

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;}@Overridepublic 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
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
getArticles() {return articles;}public void setArticles(List
articles) {this.articles = articles;}public Category() {super();}public Category(int categoryid, String categoryname, List
articles) {super();this.categoryid = categoryid;this.categoryname = categoryname;this.articles = articles;}@Overridepublic String toString() {return "Category [categoryid=" + categoryid + ", categoryname=" + categoryname + ", articles=" + articles + "]";}}
// bean转jsonGson gson = new Gson();Article article = new Article(1, "文章1");String json = gson.toJson(article);System.out.println(json);// json转beanArticle obj = gson.fromJson(json, Article.class);System.out.println(obj);// list对象转jsonGson 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>>() {}.getType());for (Article article : list2) {System.out.println(article);}// map转jsonGson 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转mapMap<String, Object> map2 = gson.fromJson(json, new TypeToken<Map>>() {}.getType());System.out.println(map2);// 复杂bean转jsonGson 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转复杂beanCategory 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,通过捕捉的异常来判断是否是jsonString 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

 

转载于:https://www.cnblogs.com/zengnansheng/p/10389281.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录