如何从改造2响应中获取带引号的字符串?

时间:2018-12-19 13:23:12

标签: android json retrofit2

现在我以这种方式得到答复:

  

response.body = {users = [{identity = poJwA,firstname = abc,lastname = abac,   email=abac@abc.com,   profile_image = https://s3-us-west-2.amazonaws.com/talent-advocate/default-avatar.png},   {identity = AbwOA,firstname = abcd,lastname = efgh,email = jayhghl @ o2h.com,   profile_image = https://s3-us-west-2.amazonaws.com/talent-advocate/default-avatar.png}

我想用带引号的字符串作为响应,

{
   "data":[
      {
         "identity":"pdavp",
         "social_media":"twitter",
         "is_company":0,
         "site_identity":0,
         "active":1,
         "created_at":{
            "date":"2018-09-21 05:39:07.000000",
            "timezone_type":3,
            "timezone":"UTC"
         }
      }
   ]
}

以便我可以转换为JSON对象。

还是可以将响应转换为与API响应不同的自定义模型?

1 个答案:

答案 0 :(得分:1)

如果您希望在翻新呼叫中获得原始响应,则需要添加Scalars转换器。

在您的build.gradle文件中添加:

implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'

然后,在构建改造实例时,添加转换器:

val retrofit: Retrofit = Retrofit.Builder()
            .baseUrl(URL)
            .client(OkHttpClient.Builder().build())
            .addConverterFactory(ScalarsConverterFactory.create()) // Add this line
            // Other converters or callbacks.
            .build()

这样,您将能够访问原始String并以自己喜欢的任何方式处理json。

但是,作为建议,看看Moshi from Square(或GSON),您将能够将API JSON响应直接转换为Java / Kotlin对象,并且也有一个转换器只需添加依赖项:

implementation 'com.squareup.retrofit2:converter-moshi:2.3.0'

然后将转换器添加到改造中

.addConverterFactory(MoshiConverterFactory.create())