使用GSON解析JSON对象并更新JSON文件(搜索和更新)
下面是我的JSON对象使用GSON解析JSON对象并更新JSON文件(搜索和更新),json,gson,jsonpath,Json,Gson,Jsonpath,下面是我的JSON对象 { "Germany": { "Languages": [ "German", "English", "Austrian German" ], "Continent": "unknown", "Capital": "Berlin" }, "China": { "Language": [
{
"Germany": {
"Languages": [
"German",
"English",
"Austrian German"
],
"Continent": "unknown",
"Capital": "Berlin"
},
"China": {
"Language": [
"Standard Mandarin",
"Cantenese",
"English"
],
"Continent": "Asia",
"Capital": "Shanghai"
}
}
我试图实现的是搜索关键字[例如:德国](如果存在),然后将属性大陆
从未知
更新为欧洲
我们如何使用GSON实现这一点?以下是在满足条件(即输入JSON中的德国大陆“未知”)的情况下更新大陆的代码
[{“applicationId”:“email-id-1202”,“extRefNumber”:“targobank-ref-number2018-04-09T17:12:49.506”,“bankName”:“targobank”,“申请人”:[{“personId”:“1”,“文档”:[{“fileId”:“2”,“文档id”:“2”,“类型”:“税务文档”}]}],“数据”:{“firstName”:“First”,“lastName”:“Last”,“branchCode”:“branchCode”}]我需要更新类型值,尝试了上面的代码,但无法实现,请您提供帮助
public static void main(String[] args) {
String json = "{\"Germany\": {\"Languages\": [\"German\",\"English\",\"Austrian German\"],\"Continent\": \"unknown\",\"Capital\": \"Berlin\" }, \"China\": {\"Language\": [\"Standard Mandarin\",\"Cantenese\",\"English\"],\"Continent\": \"Asia\",\"Capital\": \"Shanghai\" }}";
Gson gson = new Gson();
JsonElement countryJsonElement = gson.fromJson(json, JsonElement.class);
JsonElement germanyJsonElement = countryJsonElement.getAsJsonObject().get("Germany");
boolean updatedFlag = false;
if (germanyJsonElement != null) {
if (germanyJsonElement.getAsJsonObject().get("Continent").getAsString().equalsIgnoreCase("unknown")) {
germanyJsonElement.getAsJsonObject().remove("Continent");
germanyJsonElement.getAsJsonObject().addProperty("Continent", "Europe");
updatedFlag = true;
}
}
if (updatedFlag) {
countryJsonElement.getAsJsonObject().remove("Germany");
countryJsonElement.getAsJsonObject().add("Germany", germanyJsonElement);
System.out.println("Germany continent updated....");
System.out.println(countryJsonElement.toString());
} else {
System.out.println("Germany continent not updated....");
}
}