如果java中的json文件中还没有空的JsonObject节点,如何添加另一个空的JsonObject节点?
我当前的JSON文件:如果java中的json文件中还没有空的JsonObject节点,如何添加另一个空的JsonObject节点?,java,json,org.json,Java,Json,Org.json,我当前的JSON文件: { "dev": { "name": "James", "address": "12 VK Street", "city": "Austin" }, "test": { "name": "Roy&q
{
"dev": {
"name": "James",
"address": "12 VK Street",
"city": "Austin"
},
"test": {
"name": "Roy",
"address": "15 VK Street",
"city": "New York"
}
}
我有另一个称为beta的环境。需要检查当前JSON文件中是否存在beta节点。
如果当前JSON文件中存在测试版,则测试版正常,JSON文件中没有更改。
若beta节点不存在,那个么我需要为beta添加节点,并将JSON文件更新为以下内容
{
"dev": {
"name": "James",
"address": "12 VK Street",
"city": "Austin"
},
"test": {
"name": "Roy",
"address": "15 VK Street",
"city": "New York"
}
"beta": {
}
}
我尝试了以下代码,但没有成功。检查JSON是否已经有所需的对象。如果没有,则创建一个新的
JSONObject main=新的JSONObject(jsonString);
如果(!main.has(“beta”)){
put(“beta”,新的JSONObject());
//main.put(“beta”,不起作用
//main.put(“beta”,“{}”);不起作用
}
如何在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不存在,这将添加子jsonobject。
并更新密钥的值或添加新的值来代替整个文件flush n close请粘贴代码您尝试了什么,出现了什么错误?我从来没有得到过适用于此的工作代码。所以没有任何错误要添加。对不起,这个网站不是用来寻找和完成代码分配的。您的问题需要比要求他人为您编写代码更具体