2016-10-18 11 views
0

(検索および更新)GSONを使用してJSONファイルを更新することは、私のJSONオブジェクトは、私が達成しようとしています何解析JSONオブジェクトの下

{ 
    "Germany": { 
     "Languages": [ 
      "German", 
      "English", 
      "Austrian German" 
     ], 
     "Continent": "unknown", 
     "Capital": "Berlin" 
    }, 
    "China": { 
     "Language": [ 
      "Standard Mandarin", 
      "Cantenese", 
      "English" 
     ], 
     "Continent": "Asia", 
     "Capital": "Shanghai" 
    } 
} 

あるキーワードを検索することです[例:ドイツ]が存在する場合ContinentunknownからEuropeに更新します。

GSONを使用してこれをどのように達成できますか?

答えて

1

条件が満たされた場合(つまり、ドイツの大陸が入力JSONで「不明」の場合)、大陸を更新するためのコードです。

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...."); 
    } 

} 
関連する問題