java json yaml_Java | 将 JSON 字符串转换为 YAML 字符串

在k8s中所有的资源或者配置文件都可以用 YAML 或 JSON 定义。YAML 是一个 JSON 的超集,任何有效 JSON 文件也都是一个有效的 YAML 文件。但比起JSON,YAML 的格式更加简洁清晰,本文将介绍两种在 JAVA 中将 JSON 字符串转换为 YAML 字符串的方式。

一、使用 Jackson

添加依赖:

com.fasterxml.jackson.core

jackson-databind

2.6.5

com.fasterxml.jackson.dataformat

jackson-dataformat-yaml

2.6.5

代码实现:

//读取 JSON 字符串

JsonNode jsonNodeTree = new ObjectMapper().readTree(jsonStr);

//转换成 YAML 字符串

String yamlStr = new YAMLMapper().writeValueAsString(jsonNodeTree);

效果展示:

---

kind: "Service"

apiVersion: "v1"

metadata:

name: "tomcat"

labels:

app: "tomcat"

spec:

ports:

- name: "tcp-8080"

protocol: "TCP"

port: 8080

selector:

app: "tomcat"

该方式会自动带上 --- 分隔符,大部分属性值也默认带上了双引号,若不想要引号,可使用下面的方式。

二、使用 snakeyaml

添加依赖:

org.yaml

snakeyaml

1.18

代码实现:

Yaml yaml = new Yaml();

//将 JSON 字符串转成 Map

Map map = (Map) yaml.load(jsonUrl);

//转换成 YAML 字符串

String yamlStr = yaml.dumpAsMap(map);

效果展示:

kind: Service

apiVersion: v1

metadata:

name: tomcat

labels:

app: tomcat

spec:

ports:

- name: tcp-8080

protocol: TCP

port: 8080

selector:

app: tomcat

该方式先将 JSON 字符串转通过 load 方法转成 map,再转成 YAML 格式,效果上看比第一种方式要好。

原文:https://www.cnblogs.com/einsier/p/14308442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值