[英]Write a Json file in Java , nested objects instead of String
我必须阅读一个示例pom文件,并将所有技术和版本都写入json文件,我能够以这种格式获取输出:
["{ name:junit ,Version:4.12}","{ name:spring-batch-test ,Version:3.0}","{ name:spring-boot-starter }","{ name:slf4j-api }"]
但是我想以这种格式输出:
[{ "name":"junit" ,"Version":"4.12"},{" name":"spring-batch-test" ,"Version":"3.0"},{"name":"spring-boot-starter" }]
我的代码:
Map<String, String> dependencies = Maps.newHashMap();
dependencies = populateProjectDepedencies(dependencies, pomFile);
In populateProjectDependencies
for (Dependency dependency : dependencyList) {
String version = "0.0";
if (dependency.getVersion() != null &&
dependency.getVersion().startsWith("${"))
{
version = (String) properties.get(dependency.getVersion()
.substring(2, dependency.getVersion().length() - 1));
} else {
version = dependency.getVersion();
}
if (version != null) {
String a1[]=version.split("\\.");
int i=a1.length;
if(i>=2)
{
version=a1[0]+"."+a1[1];
}
dependencies.put("{name:"+dependency.getArtifactId(),",
Version:"+version+"}" );
JSONArray jsonArray = prepareJsonObject(dependencies);
genarateTechnologyRadarJson(jsonArray);
writer.write(jsonArray.toJSONString());
因为,您将值添加为String
"{ name:"+dependency.getArtifactId(),"
甚至,我不确定您为什么要手动构造JSON,而只是将Map
对象传递给JSONObject
。
JSONObject obj=new JSONObject(yourmap);
据我从您的问题中了解,您将json保留为String
数组,但希望将数据保留为JSONObject
数组。 所以,
JSONArray ja = new JSONArray();
for (Dependency dependency : dependencyList) {
.....
JSONObject obj=new JSONObject();
obj.put("name",dependency.getArtifactId());
obj.put("Version",version);
ja.put(obj);
//remove dependencies.put,JSONArray. and genarateTechnologyRadarJson(jsonArray);
}
writer.write(ja.toString());
更新
这应该是您的完整代码
JSONArray jsonArray = new JSONArray();
for (Dependency dependency: dependencyList) {
String version = "0.0";
if (dependency.getVersion() != null &&
dependency.getVersion().startsWith("${")) {
version = (String) properties.get(dependency.getVersion()
.substring(2, dependency.getVersion().length() - 1));
} else {
version = dependency.getVersion();
}
if (version != null) {
String a1[] = version.split("\\.");
int i = a1.length;
if (i >= 2) {
version = a1[0] + "." + a1[1];
}
}
JSONObject obj=new JSONObject();
obj.put("name",dependency.getArtifactId());
obj.put("Version",version);
jsonArray.put(obj);
}
writer.write(jsonArray.toJSONString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.