优选主流主机商
任何主机均需规范使用

yaml和json之间的转换方法介绍

在Java中,可以使用第三方库来实现YAML和JSON之间的转换。以下是两种常用的方法:

  1. 使用Jackson库:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;

import java.io.File;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            // 将YAML转换为JSON
            ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
            Object yamlObject = yamlMapper.readValue(new File("input.yaml"), Object.class);
            ObjectMapper jsonMapper = new ObjectMapper();
            String json = jsonMapper.writeValueAsString(yamlObject);
            System.out.println(json);

            // 将JSON转换为YAML
            Object jsonObject = jsonMapper.readValue(json, Object.class);
            String yaml = yamlMapper.writeValueAsString(jsonObject);
            System.out.println(yaml);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述示例中,首先使用Jackson库的ObjectMapper类和YAMLFactory来读取YAML文件并将其转换为Java对象。然后,再使用ObjectMapper将Java对象转换为JSON字符串。

  1. 使用SnakeYAML库:
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;

import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Main {
    public static void main(String[] args) {
        try {
            // 将YAML转换为JSON
            String yamlContent = new String(Files.readAllBytes(Paths.get("input.yaml")));
            Yaml yaml = new Yaml();
            Object data = yaml.load(yamlContent);
            String json = new ObjectMapper().writeValueAsString(data);
            System.out.println(json);

            // 将JSON转换为YAML
            DumperOptions options = new DumperOptions();
            options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
            Yaml newYaml = new Yaml(options);
            FileWriter writer = new FileWriter("output.yaml");
            newYaml.dump(new ObjectMapper().readValue(json, Object.class), writer);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,使用SnakeYAML库的Yaml类将YAML文件读取为Java对象,然后使用Jackson库的ObjectMapper将Java对象转换为JSON字符串。同样,将JSON转换为YAML时,首先创建DumperOptions以设置输出格式,然后使用SnakeYAML的Yaml类将JSON对象写入到输出文件中。

以上是两种常用的方法,使用相应的库可以实现YAML和JSON之间的互相转换。请根据需求选择适合的方法和库进行转换操作。

未经允许不得转载:搬瓦工中文网 » yaml和json之间的转换方法介绍