-2

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

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

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

但是,我试图Json Object从一个实际的Object. 我正在使用Gson来实现这一点。制作对象时如何使用 A 和 B 作为键?

4

1 回答 1

1

使用Gson,您可以将 JSON 解析为Mapas

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;
    }
}
于 2013-08-09T13:11:01.623 回答