字符串值为Object键

时间:2013-08-09 12:50:28

标签: java android json gson key-value

假设我有String A = "A";String B = "B";,我想将这些值用作json对象中的键。

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

现在在另一个时空,我想从String获取这些Json Object值。我必须得到“A”和“B”的值。我们可以在制作这个json对象时使用A和B,并在获取值时重用它们。

但是,我正在尝试从实际Json Object中制作Object。我正在使用Gson来实现这一目标。如何在制作对象时使用A和B作为键?

1 个答案:

答案 0 :(得分:1)

使用Gson,您可以将JSON解析为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

或者,如果要将键包装在现有对象中

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

JsonObject看起来像

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

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