2013-08-09 3 views
-2

String A = "A";String B = "B";이 있고 이러한 값을 json 개체의 키로 사용하려고한다고 가정합니다. 이제 또 다른 시간과 공간에서개체 키로 사용되는 문자열 값

{ 
    "A":"string1", 
    "B":"string2" 
} 

, 나는 Json Object에서 이러한 String 값을 좀하고 싶습니다. 나는 "A"와 "B"에 대한 가치를 얻어야 할 것입니다. 이 json 객체를 만들 때 A와 B를 사용하고 값을 가져올 때 다시 사용할 수 있습니다.

나는 Json Object을 실제 Object에서 만들려고합니다. 이것을 달성하기 위해 나는 Gson을 사용하고 있습니다. 오브젝트를 만들 때 어떻게 A와 B를 키로 사용할 수 있습니까?

+0

현재 코드를 표시 할 수 있습니까? – Tala

+3

'A'와'B'를 키로 사용하여'Map '을 만들고 GSON을 사용하여 직렬화 할 수 있습니다. 'A'와'B'를 다시 얻으려면, 그것을 deserialize하여 맵핑하고 키를 얻으십시오. – sanbhat

답변

1

당신이 JsonObject

처럼 보일 수있는 기존의 객체

String json = "{ pairs : {\n" + 
     "\"A\":\"string1\",\n" + 
     "\"B\":\"string2\"\n" + 
    "} }"; 

Gson gson = new Gson(); 

JsonObject jsonObject = gson.fromJson(json, JsonObject.class); 

System.out.println(jsonObject.getPairs().get("A")); // string1 
System.out.println(jsonObject.getPairs().get("B")); // string2 

에 열쇠를 포장하려는 경우 당신이하는 Map

String json = "{\n" + 
     "\"A\":\"string1\",\n" + 
     "\"B\":\"string2\"\n" + 
    "}"; 

Gson gson = new Gson(); 
Type type = new TypeToken<Map<String, String>>(){}.getType(); 

Map<String, String> map = gson.fromJson(json, type); 

System.out.println(map.get("A")); // string1 
System.out.println(map.get("B")); // string2 

다른 방법으로 JSON을 구문 분석 할 수 Gson 사용

class JsonObject { 
    private Map<String, String> pairs; 

    public Map<String, String> getPairs() { 
     return pairs; 
    } 
}