Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改装/Android-动态响应支持_Java_Android_Json_Retrofit_Firebase Cloud Messaging - Fatal编程技术网

Java 改装/Android-动态响应支持

Java 改装/Android-动态响应支持,java,android,json,retrofit,firebase-cloud-messaging,Java,Android,Json,Retrofit,Firebase Cloud Messaging,我在将生成的json数据映射到带有改进的pojo类时遇到了问题。我需要通过令牌确定Firebase主题。这可以通过Google的json api实现,如下所述: 在我的情况下,服务器的响应与此类似: { "applicationVersion": "36", "connectDate": "2018-02-04", "attestStatus": "ROOTED", "application": "<my application id>", "

我在将生成的json数据映射到带有改进的pojo类时遇到了问题。我需要通过令牌确定Firebase主题。这可以通过Google的json api实现,如下所述:

在我的情况下,服务器的响应与此类似:

{
    "applicationVersion": "36",
    "connectDate": "2018-02-04",
    "attestStatus": "ROOTED",
    "application": "<my application id>",
    "scope": "*",
    "authorizedEntity": "205414012839",
    "rel": {
        "topics": {
            "topic1": {
                "addDate": "2018-02-04" 
            },
            "topic2": {
                "addDate": "2018-01-31" 
            }
        }
    },
    "connectionType": "WIFI",
    "appSigner": "<hash>",
    "platform": "ANDROID" 
}
{
“应用程序版本”:“36”,
“连接日期”:“2018-02-04”,
“认证状态”:“根目录”,
“申请”:“,
“范围”:“*”,
“授权身份”:“205414012839”,
“rel”:{
“主题”:{
“主题1”:{
“添加日期”:“2018-02-04”
},
“主题2”:{
“添加日期”:“2018-01-31”
}
}
},
“连接类型”:“WIFI”,
“appSigner”:“,
“平台”:“安卓”
}
问题基本上是
rel
topics
结构,因为
topics
是动态的,字段列表可以通过任何方式进行,而且是未知的。因此,我无法生成简单的POJO,以便通过Retrfofit自动将其映射

我是否可以强制改装以将
主题
视为单个
字符串
字段,稍后我将能够对其进行解析以检索主题列表?或者还有其他解决办法吗


有什么想法吗?

如果使用gson,可以将rel定义为一个jsonement。如果使用moshi,可以将其定义为地图。 对于gson:

public class Response{
    private String applicationVersion;
    private String connectDate;
    private String attestStatus;
    private String application;
    private String scope;
    private String authorizedEntity;
    private String connectionType;
    private String appSigner;
    private String platform;
    private JsonElement rel;
}
对于moshi:

public class Response{
    private String applicationVersion;
    private String connectDate;
    private String attestStatus;
    private String application;
    private String scope;
    private String authorizedEntity;
    private String connectionType;
    private String appSigner;
    private String platform;
    private Map<String, Map<String, Map<String, String>>> rel;
}
公共类响应{
私有字符串应用程序版本;
私有字符串连接日期;
私有字符串状态;
私有字符串应用程序;
私有字符串范围;
私人身份;
私有字符串连接类型;
私有字符串appSigner;
私有字符串平台;
私人地图;
}