Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JSON转换为YAML。将JSON解析为YAML_Java_Json_Parsing_Yaml - Fatal编程技术网

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

Java 将JSON转换为YAML。将JSON解析为YAML,java,json,parsing,yaml,Java,Json,Parsing,Yaml,我正在处理配置文件,因此需要将JSON转换为YAML。 例如,我有一个JSON文件: { "foo": "bar", "baz": [ "qux","quxx"], "corge": null, "grault": 1, "garply": true, "waldo": "false&

我正在处理配置文件,因此需要将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: ""
你能帮我吗?

这个网站可以帮助你。它可以用于 猛击, JavaScript, JavaScript(仅限浏览器), 红宝石, python Perl,
Java..

如果需要将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);
//这是您的json对象
JSONObject JSONObject=新的JSONObject(映射);
//获取json字符串
字符串prettyJSONString=jsonobject.toString(4);
//映射
Map Map=(Map)yaml.load(prettyJSONString);
//转换为yaml字符串(yaml格式的字符串)
字符串输出=yaml.dump(map2);

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

您需要向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'

这里是一个文件的一行程序,适用于粘贴bash脚本。这应该适用于大多数系统上的大多数默认python:

python -c 'import json; import yaml; print(yaml.dump(json.load(open("inputfile"))))'
我建议你考虑(免责声明-我是它的开发者)。它在JSON、YML和其他格式之间进行转换

您可以从或。

函数yaml\u validate获取它{
python-c'import sys,yaml,json;yaml.safe_load(sys.stdin.read())'
}
函数yaml2json{
python-c'import sys,yaml,json;print(json.dumps(yaml.safe_load(sys.stdin.read()))
}
函数yaml2json_{
python-c'import sys,yaml,json;print(json.dumps(yaml.safe_load(sys.stdin.read()),indent=2,sort_keys=False))'
}
函数json_validate{
python-c'import sys,yaml,json;json.loads(sys.stdin.read())'
}
函数json2yaml{
python-c'import sys,yaml,json;print(yaml.dump(json.loads(sys.stdin.read()))
}

你能简单解释一下你的答案吗?在你们声明“jsonPrettyPrintString”的地方,我真的很抱歉反应太晚,我编辑了答案@请解释yaml变量。我应该在这里传递哪个映射?如何将json字符串转换为映射。我反对对此进行否决表决。问题中没有提到提供“编程方式”,所以这个答案也是有效的。@PasinduJay标记提供了必要的上下文-问题标记为Java。为我省去了很多麻烦。回答得很好。这个方法很有效,但将其写入文件会更好。根据“因此YAML可以被视为JSON的自然超集…”,以及“…每个JSON文件也是有效的YAML文件。”
python -c 'import json; import yaml; print(yaml.dump(json.load(open("inputfile"))))'