使用Gson实现javabean,json。list,map之间的互转

一.实现javabean  与json互转

1.1 pom依赖的配置

     <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>

1.2 编写javabean

package com.ljf.spring.boot.demo.util;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: MessageBean
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/03/13 10:40:45 
 * @Version: V1.0
 **/
public class MessageBean {
    private String id;
    private String name;
    private String age;
    private List<String> list=new ArrayList<String>();

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "MessageBean{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", list=" + list +
                '}';
    }
}

1.3 编写程序转换工具类

package com.ljf.spring.boot.demo.util;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: JsonUtil
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/03/13 10:42:28 
 * @Version: V1.0
 **/
public class JsonUtil {
    /**
    * @author liujianfu
    * @description
    * @date 2021/3/13 10:43
    * @param []        javabean 转成json串
    * @return java.lang.String
    */
    public static String toJsonString() {
        List<MessageBean> mbList = new ArrayList<MessageBean>();
        for (int k = 0; k < 10; k++) {
            MessageBean mb = new MessageBean();
            List<String> list = new ArrayList<String>();
            list.add("小米");
            list.add("西瓜");
            mb.setAge("23");
            mb.setId(k + "");
            mb.setName("ljf");
            mb.setList(list);
            mbList.add(mb);
        }
        Gson gson = new Gson();
        String s = gson.toJson(mbList);
        System.out.println(s);
        return s;
    }
    /**
    * @author liujianfu
    * @description       json 转成 javabean
    * @date 2021/3/13 10:45
    * @param [json]        
    * @return void
    */
    public static void getBean(String json) {
        Gson gson = new Gson();//http://blog.csdn.net/u011240877/article/details/52625942
        List<MessageBean> mbList = gson.fromJson(json, new TypeToken<List<MessageBean>>() {
        }.getType());
        for (MessageBean mb : mbList) {
            System.out.println(mb.getName() + ">>" + mb.getId());
            List<String> list = mb.getList();
            for (String ss : list) {
                System.out.println(ss);
            }
            System.out.println("=======");
        }
    }
    
    public static void main(String args[]){
      System.out.println("");
       String json= toJsonString();
        getBean(json);

    }
}

1.4 javabean转json

1.5 json转javabean

 

 

二.使用gson将json串转成javabean

使用gson将son转javabean,对字段不一致,做映射机制,不报错,忽略不一致的字段;

2.1 javabean

package com.ljf.spring.boot.demo.util;

/**
 * @ClassName: kafkabondsData
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/03/13 10:50:05 
 * @Version: V1.0
 **/
public class kafkabondsData {
    private String id;//编号id
    private String title;//标题
    private String content;//内容
    private String url;//采集路径

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

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

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}

2.2. 调用执行

package com.ljf.spring.boot.demo.util;

import com.google.gson.Gson;

/**
 * @ClassName: TestKafka
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/03/13 10:50:46 
 * @Version: V1.0
 **/
public class TestKafka {
    public static void main(String args[]){
      System.out.println("");
      String json="{\"url\":\"http:dd\",\"name\":\"ljf\"}";
     Gson gson=new Gson();
     kafkabondsData kbd= gson.fromJson(json, kafkabondsData.class);
     System.out.println(kbd.getUrl());
        System.out.println(kbd.getTitle());

    }
}

结果:

 

三.使用gson将json成map

3.1 代码

    String json="[{\"DeviceName\":\"悬臂堆料机\",\"deviceCode\":\"TCNY_JEK_DQLJ_2_001\",\"measurePointList\":[{\"measurePointCode\":\"EQCQ_TCNY_NK_SLD121_M1_RUN\",\"measurePointName\":\"堆料臂回转角度\",\"timeStamp\":1615513986828,\"angleVal\":1.0},{\"measurePointCode\":\"EQCQ_TCNY_NK_SLD121_M2_RUN\",\"measurePointName\":\"堆料皮带运行指示\",\"timeStamp\":1615513986828,\"angleVal\":1.0}]},{\"DeviceName\":\"俯仰机构\",\"deviceCode\":\"TCNY_JEK_DQLJ_2_014\",\"measurePointList\":[{\"measurePointCode\":\"EQCQ_TCNY_NK_SLD121_M3_RUN\",\"measurePointName\":\"取料倾角\",\"timeStamp\":1615513986828,\"angleVal\":1.0},{\"measurePointCode\":\"EQCQ_TCNY_NK_SLD122_M1_RUN\",\"measurePointName\":\" 取料回转角\",\"timeStamp\":1615513986828,\"angleVal\":1.0}]},{\"DeviceName\":\"刮板取料机\",\"deviceCode\":\"TCNY_JEK_DQLJ_2_006\",\"measurePointList\":[{\"measurePointCode\":\"EQCQ_TCNY_NK_SLD122_M2_RUN\",\"measurePointName\":\"刮板运行指示\",\"timeStamp\":1615513987828,\"angleVal\":1.0}]}]";
       json="{\"data\":"+json+"}";
       System.out.println("json:"+json);
       //第一种 json转换成map
        Gson gson=new Gson();
        Map map = new HashMap();
        map=gson.fromJson(json,Map.class);
        Map paramsMap=(Map)((List)map.get("data")).get(0);
       List list= (List)map.get("data");
       for(int k=0;k<list.size();k++){
           System.out.println("k:"+list.get(k));
       }
        System.out.println("paramamap:"+paramsMap);
       //第二种 json转换成map
        Map infoMap = new ObjectMapper().readValue(json, Map.class); //json转换成map
        Map paramsMap2=(Map)((List)infoMap.get("data")).get(0);
        System.out.println("paramMap2:"+paramsMap2);

执行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值