一.实现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);
执行结果: