Java 如何获取对象';通过GSON转换后的s字段键?

Java 如何获取对象';通过GSON转换后的s字段键?,java,android,gson,Java,Android,Gson,这是我的json: public class POIItem { @SerializedName("id") private String id; @SerializedName("phone") private String phone; private String title; public String getId() { return id; } public String getPhone()

这是我的json:

    public class POIItem {
    @SerializedName("id")
    private String id;
    @SerializedName("phone")
    private String phone;
    private String title;

    public String getId() {
        return id;
    }

    public String getPhone() {
        return phone;
    }
}
但是我的recyclerView由CardView组成,它有两个字段 标题:价值 哪里 第一个itemView Id:1,第二个View标题:“testTitle”

我需要在listview中将每个字段表示为行,其中listview的项具有标题,即方法名“Phone”,值为getPhone()。如何获取每个字段的方法名或SerializedName 并获得方法计数


当服务器端的字段名称不同(返回JSON)时,我只需要有value,还需要key,通过GSON使用
@SerializedName
。使用。

当服务器端的字段名称不同(返回JSON)时,使用
@SerializedName
。使用。

假设您有
gson
对象,我建议您将
gson
转换为
java.util.Map
,如下所示:-

{"id":"1","title":"testTitle","address":"testAdress","phone":"00990434343"}

假设您有
gson
对象,我建议您将
gson
转换为
java.util.Map
,如下所示:-

{"id":"1","title":"testTitle","address":"testAdress","phone":"00990434343"}

不清楚您在问什么,您的json数据proeprity名称是否每次都会更改?如果你可以用一个json样本和预期的结果来更新这个问题。现在还不清楚你在问什么,你的json数据项目名称是否每次都会改变?如果您可以使用json示例和预期结果更新问题。我知道,我需要获取密钥,如何获取?@I.S.S.J您是指在转换为Java对象之前从服务器发送的密钥?还是转换后对象的字段键?如果您需要更好的帮助,请使用您想对密钥执行的操作更新您的问题。我有更新问题,需要在更新后使用对象的字段密钥converting@I.S.S.J因此,您希望在字段名的值旁边添加字段名,但为什么?您必须搜索反射和获取java对象字段名。因为在视图中,它不仅显示值,还显示键。我知道它,我需要获取键,如何获取?@I.S.S.J您是指在转换为java对象之前从服务器发送的键?还是转换后对象的字段键?如果您需要更好的帮助,请使用您想对密钥执行的操作更新您的问题。我有更新问题,需要在更新后使用对象的字段密钥converting@I.S.S.J因此,您希望在字段名的值旁边添加字段名,但为什么?您必须搜索反射和获取java对象字段名。因为在视图中,它不仅显示值,而且还显示键。我可以得到您的意思,我如何将对象字段键作为键?您不放置键和值。如果您有
gson
并且同时需要字段名和值,那么可以将
gson
转换为
java.util.Map
。您不需要输入键值。迭代
映射
,得到每个字段名和相应的值。您只需迭代
映射
。我可以得到您的意思,我如何将其作为键,对象字段键?您不放置键和值。如果您有
gson
并且同时需要字段名和值,那么可以将
gson
转换为
java.util.Map
。您不需要输入键值。迭代
映射
,得到每个字段名和相应的值。您只需迭代
映射
//iterate the map in order to get field name and value
Set<String> fieldSet = map.keySet();
for (String fieldName : fieldSet) {
    Object fieldValue = map.get(fieldName);
    System.out.println("field name = "+fieldName+", field value: "+fieldValue);
}