Java系列之:ObjectMapper实现对象转化为Json、集合转化为Json、Json转化为对象、Json转化为JsonNode、JsonNode转化为Json字符串
一、创建类Dataset
import lombok.Data;
@Data
public class Dataset {
/**
* 数据表全称
*/
private String tableName;
/**
* 数据库名称
*/
private String databaseName;
/**
* 表的描述
*/
private String tableComment;
/**
* 表的行数
*/
private Long tableRows;
}
二、生成对象插入数据
Dataset dataset = new Dataset();
dataset.setDatabaseName("dw数据库");
dataset.setTableName("order订单表");
dataset.setTableComment("订单表存放用户订单信息");
dataset.setTableRows(1000L);
Dataset dataset1 = new Dataset();
dataset1.setDatabaseName("optics数据库");
dataset1.setTableName("optics订单表");
dataset1.setTableComment("订单表存放光学订单信息");
dataset1.setTableRows(8000L);
三、对象转化为Json
//对象转化为JSON
ObjectMapper objectMapper = new ObjectMapper();
String datasetToJson = objectMapper.writeValueAsString(dataset);
System.out.println(datasetToJson);
输出如下所示:
{"tableName":"order订单表","databaseName":"dw数据库","tableComment":"订单表存放用户订单信息","tableRows":1000}
四、集合转化为Json
生成集合
ArrayList<Dataset> datasetList = new ArrayList<>();
datasetList.add(dataset);
datasetList.add(dataset1);
System.out.println(datasetList);
输出如下所示:
[Dataset(tableName=order订单表, databaseName=dw数据库, tableComment=订单表存放用户订单信息, tableRows=1000),
Dataset(tableName=optics订单表, databaseName=optics数据库, tableComment=订单表存放光学订单信息, tableRows=8000)]
集合转化为JSON
//集合转化为JSON
String dataSetListJson = objectMapper.writeValueAsString(datasetList);
System.out.println(dataSetListJson);
输出如下所示:
[{"tableName":"order订单表","databaseName":"dw数据库","tableComment":"订单表存放用户订单信息","tableRows":1000},{"tableName":"optics订单表","databaseName":"optics数据库","tableComment":"订单表存放光学订单信息","tableRows":8000}]
五、Json转化为对象
Dataset dataset3 = objectMapper.readValue(datasetToJson,Dataset.class);
System.out.println(dataset3);
输出如下所示:
Dataset(tableName=order订单表, databaseName=dw数据库, tableComment=订单表存放用户订单信息, tableRows=1000)
六、Json转JsonNode
datasetToJson为:
{“tableName”:“order订单表”,“databaseName”:“dw数据库”,“tableComment”:“订单表存放用户订单信息”,“tableRows”:1000}
//JSON转JsonNode
JsonNode jsonNode = objectMapper.readTree(datasetToJson);
System.out.println("输出jsonNode:"+jsonNode);
输出如下所示:
输出jsonNode:{"tableName":"order订单表","databaseName":"dw数据库","tableComment":"订单表存放用户订单信息","tableRows":1000}
dataSetListJson为:
[{“tableName”:“order订单表”,“databaseName”:“dw数据库”,“tableComment”:“订单表存放用户订单信息”,“tableRows”:1000},{“tableName”:“optics订单表”,“databaseName”:“optics数据库”,“tableComment”:“订单表存放光学订单信息”,“tableRows”:8000}]
JsonNode jsonNode1 = objectMapper.readTree(dataSetListJson);
System.out.println("输出jsonNode:"+jsonNode1);
输出如下所示:
输出jsonNode:
[{"tableName":"order订单表","databaseName":"dw数据库","tableComment":"订单表存放用户订单信息","tableRows":1000},
{"tableName":"optics订单表","databaseName":"optics数据库","tableComment":"订单表存放光学订单信息","tableRows":8000}]
七、获取JsonNode中数据
查JsonNode数据:
String databaseName = jsonNode.path("databaseName").asText();
System.out.println(databaseName);
String databaseName1 = jsonNode.get("databaseName").asText();
System.out.println(databaseName1);
输出如下所示:
dw数据库
dw数据库
八、JsonNode转化为json字符串
//JsonNode转为json字符串
String jsonNodeString = objectMapper.writeValueAsString(jsonNode);
System.out.println(jsonNodeString);
输出如下所示:
{"tableName":"order订单表","databaseName":"dw数据库","tableComment":"订单表存放用户订单信息","tableRows":1000}