将 JSON 转换为 YAML。将 JSON 解析为 YAML

新手上路,请多包涵

我正在处理配置文件,所以我需要将 JSON 转换为 YAML。例如我有这个 JSON 文件:

 {
  "foo": "bar",
  "baz": [ "qux","quxx"],
  "corge": null,
  "grault": 1,
  "garply": true,
  "waldo": "false",
  "fred": "undefined",
  "emptyArray": [],
  "emptyObject": {},
  "emptyString": ""
}

结果应该是 YAML:

 foo: "bar"
baz:
  - "qux"
  - "quxx"
corge: null
grault: 1
garply: true
waldo: "false"
fred: "undefined"
emptyArray: []
emptyObject: {}
emptyString: ""

你可以帮帮我吗?

原文由 eabyshev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

如果您需要将 JSONobject 转换为 yaml(字符串)。你需要。先获取json字符串,然后映射,之后就可以转成yaml了。这里的代码:

   // this is your json object
  JSONObject jsonobject = new JSONObject(map);
  // get json string
  String prettyJSONString = jsonobject.toString(4);
  // mapping
  Map<String,Object> map = (Map<String, Object>) yaml.load(prettyJSONString);
  // convert to yaml string (yaml formatted string)
  String output = yaml.dump(map2);

原文由 eabyshev 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 Jackson 中的两行代码将 JSON 转换为 YAML:

 import java.io.IOException;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;

public class Library {

    public String asYaml(String jsonString) throws JsonProcessingException, IOException {
        // parse JSON
        JsonNode jsonNodeTree = new ObjectMapper().readTree(jsonString);
        // save it as YAML
        String jsonAsYaml = new YAMLMapper().writeValueAsString(jsonNodeTree);
        return jsonAsYaml;
    }

}

您需要将依赖项添加到 Jackson Core、DataBind 和 DataFormat YAML。下面是 Gradle 的一个片段:

 compile 'com.fasterxml.jackson.core:jackson-core:2.8.6'
compile 'com.fasterxml.jackson.core:jackson-databind:2.8.6'
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.8.6'

原文由 Tanya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题