如何解决如果Java中的json文件中尚不存在另一个空JsonObject节点,该如何添加?
我当前的JSON文件:
{
"dev": {
"name": "James","address": "12 VK Street","city": "Austin"
},"test": {
"name": "Roy","address": "15 VK Street","city": "New York"
}
}
我还有另一个称为beta的环境。
需要检查当前JSON文件中是否存在beta节点。
如果当前JSON文件中存在beta,则表示它正常,并且JSON文件中没有任何更改。
如果beta节点不存在,那么我需要为beta添加节点并将JSON文件更新为以下内容。
{
"dev": {
"name": "James","city": "New York"
}
"beta": {
}
}
我尝试了以下代码,但没有用。
检查JSON是否已具有所需的对象。如果没有,请创建一个新的
JSONObject main = new JSONObject(jsonString);
if (!main.has("beta")) {
main.put("beta",new JSONObject());
// main.put("beta",""); didn't work
// main.put("beta","{}"); didn't work
}
如何用Java实现呢?我尝试使用Jackson,简单JSON,但没有成功。谢谢!
===========================
让它正常工作
private void addReplaceValueInjson(String key,String value) throws Exception {
File jsonFile = new File("testdata.json");
String jsonString = FileUtils.readFiletoString(jsonFile,Charset.defaultCharset());
String env = System.getProperty(Constant.ENV);
JsonElement mainElement = new JsonParser().parse(jsonString);
JsonObject mainObject = mainElement.getAsJsonObject();
// If env node is not present in json then create one
if (!mainObject.has(env)) {
JsonElement envElement = new JsonParser().parse(new JSONObject("{}").toString());
mainObject.add(env,envElement);
}
try {
mainObject.getAsJsonObject(env).addProperty(key,value);
String resultingJson = new Gson().toJson(mainElement);
FileUtils.writeStringToFile(jsonFile,resultingJson,Charset.defaultCharset());
} catch (Exception e) {
System.out.println("JSONObject: " + env + " missing in testdata.json. Please add " + env + " node.");
}
}
这将添加子jsonobject(如果不存在)。 并更新密钥的值或添加新的密钥代替整个文件刷新n关闭
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。