eab*_*hev 6 java parsing json yaml
我正在使用配置文件,所以我需要将JSON转换为YAML.例如,我有yaml文件:
{
"foo": "bar",
"baz": [ "qux","quxx"],
"corge": null,
"grault": 1,
"garply": true,
"waldo": "false",
"fred": "undefined",
"emptyArray": [],
"emptyObject": {},
"emptyString": ""
}
Run Code Online (Sandbox Code Playgroud)
结果应该是yaml:
foo: "bar"
baz:
- "qux"
- "quxx"
corge: null
grault: 1
garply: true
waldo: "false"
fred: "undefined"
emptyArray: []
emptyObject: {}
emptyString: ""
Run Code Online (Sandbox Code Playgroud)
你可以帮帮我吗?
小智 27
您可以使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要向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'
Run Code Online (Sandbox Code Playgroud)
这是一个文件的单行,适合粘贴在 bash 脚本中。这应该适用于大多数系统上的大多数默认 python:
python -c 'import json; import yaml; print(yaml.dump(json.load(open("inputfile"))))'
Run Code Online (Sandbox Code Playgroud)
eab*_*hev -4
如果您需要将 JSONobject 转换为 yaml(字符串)。你需要。首先获取json字符串,然后map,然后转换为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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12805 次 |
| 最近记录: |