java - 使用 GSON,是否可以获取 HashMap 中的字段列表

标签 java android arraylist gson

我有以下类(class):

public class Address {
 String customerName;
 String emailAddress;
 String address1;
 int age;
 double height;
 // .. etc, including getters and setters

}

是否有可能以某种方式获得这些字段的 HashMap?例如,String name = address.getFields("customerName");。这将使验证变得容易得多。

最佳答案

是的,您应该能够使用以下类定义:

public class Address extends HashMap<String, Object>{
}

然后使用它:

String jsonString = "{\n"
    + "  \"customerName\":\"John\",\n"
    + "  \"emailAddress\":\"john@fake.com\",\n"
    + "  \"address1\":\"Fake St.\",\n"
    + "  \"age\": 20,\n"
    + "  \"height\": 5\n"
    + "}";
Gson gson = new Gson();
Address address = gson.fromJson(jsonString, Address.class);
String name = (String)address.get("customerName"); // John
int age = (int)address.get("age"); // 5

现在,以这种方式使用 Gson 反序列化不是很有用,它对您最初创建的 POJO 更有用。

尽管如此,在某些情况下使用 Map 可能更有益,例如可以迭代的随机键/值对。

关于java - 使用 GSON,是否可以获取 HashMap 中的字段列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033862/

相关文章:

java - 使用可变参数重载时方法不明确

java - MongoDB 在 Java 中按日期查询

javascript - NativeScript - 地理位置 : right way to use getCurrentLocation promise function

java - 将存储在 SQLite 数据库中的经度和纬度数据导出到文件以便可以通过网站将其导入 Google Map API 的最简单方法?

java - 从我的应用程序将多个标记设置为内置 map 应用程序

java - 为什么我们要在一些递归算法中复制一个ArrayList?

java 应用程序不适用于 java9 和 eclipse

java - 设置控制台位置

java - ArrayList<SuperClass> 中的子类对象是否保留子类特有的方法?

java - 如果列表包含不同的类,如何使用 gson 将 json 转换为 arraylist?