前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gson工具类转换json

gson工具类转换json

作者头像
崔笑颜
发布2020-06-08 17:03:55
1.3K0
发布2020-06-08 17:03:55
举报
文章被收录于专栏:小小码农一个。

引入maven

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

List集合 和json字符串的互转

代码语言:javascript
复制
	@Test
    public void testList(){
        // List 和json的互转
        List<Scenery> list = new ArrayList<>();
        list.add(new Scenery(1, "野人谷风景区", "湖北"));
        list.add(new Scenery(2, "绿野山庄", "浙江"));
        list.add(new Scenery(3, "天坛公园", "北京"));
        // 创建 gson 工具类
        Gson gson = new Gson();
        // 使用 toJson() 方法 把list集合转换为json字符串
        String json = gson.toJson(list);
        System.out.println(json);
        //结果 : [{"id":1,"name":"野人谷风景区","address":"湖北"},{"id":2,"name":"绿野山庄","address":"浙江"},{"id":3,"name":"天坛公园","address":"北京"}]

        // fromJson 把json字符串转换回list集合
        // toJson() 是把对象转换为json字符串
        // fromJson是把json字符串转换回java对象
        // 如果是转回一个JavaBean.则第二个参数是 转换的javaBean的具体类型
        // 如果是转回一个集合.则第二个参数是type类型

        // 使用fromJson() 方法将json字符串转换为list集合
        //使用匿名内部类
        List<Scenery> list1 = gson.fromJson(json, new TypeToken<List<Scenery>>(){}.getType());
        System.out.println(list1);
        //结果 : [Scenery{id=1, name='野人谷风景区', address='湖北'}, Scenery{id=2, name='绿野山庄', address='浙江'}, Scenery{id=3, name='天坛公园', address='北京'}]

        // 在转成javaBean对象
        Scenery scenery = list1.get(0);
        System.out.println(scenery);
        //结果 : Scenery{id=1, name='野人谷风景区', address='湖北'}
    }

map 和json的互转

代码语言:javascript
复制
@Test
    public void testMap(){
        Map<String, Scenery> sceneryMap = new HashMap<>();
        sceneryMap.put("CN10121010103A", new Scenery(1, "杭州极地海洋公园", "杭州"));
        sceneryMap.put("CN10121010104A", new Scenery(2, "雷峰塔", "杭州"));
        sceneryMap.put("CN10109060801A", new Scenery(3, "八达岭长城", "北京"));
        Gson gson = new Gson();
        // 所有的java对象转成json字符串都统一使用 toJson() 方法
        String json = gson.toJson(sceneryMap);
        System.out.println(json);
        //结果 : {"CN10121010103A":{"id":1,"name":"杭州极地海洋公园","address":"杭州"},"CN10121010104A":{"id":2,"name":"雷峰塔","address":"杭州"},"CN10109060801A":{"id":3,"name":"八达岭长城","address":"北京"}}

        // 吧json字符串转换回 map集合
        // 使用匿名内部类
        Map<String,Scenery> map = gson.fromJson(json, new TypeToken<Map<String, Scenery>>() {
        }.getType());
        System.out.println(map);
        //结果 : {CN10121010103A=Scenery{id=1, name='杭州极地海洋公园', address='杭州'}, CN10121010104A=Scenery{id=2, name='雷峰塔', address='杭州'}, CN10109060801A=Scenery{id=3, name='八达岭长城', address='北京'}}
        Scenery cn10109060801A = map.get("CN10109060801A");
        System.out.println(cn10109060801A);
        // 结果 : Scenery{id=3, name='八达岭长城', address='北京'}
    }

测试如下

代码语言:javascript
复制
public class GsonTest {

    @Test
    public void test() {
        Scenery scenery = new Scenery(1, "天坛公园", "北京");
        // Javabean 转换成 json 字符串
        // 创建谷歌的 gson 提供的工具类
        Gson gson = new Gson();
        // 使用 toJson() 方法转换
        String json = gson.toJson(scenery);
        System.out.println(json);
        //结果 : {"id":1,"name":"天坛公园","address":"北京"}

        // 使用 formJson 方法将 json 字符串转换为Javabean 对象
        Scenery sceneryBean = gson.fromJson(json, Scenery.class);
        System.out.println(sceneryBean);
        //结果 : Scenery{id=1, name='天坛公园', address='北京'}
    }
  }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引入maven
  • List集合 和json字符串的互转
  • map 和json的互转
  • 测试如下
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档