2016-10-18 3 views
0

다음은 내 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...."); 
    } 

}