现在我以这种方式得到答复:
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响应不同的自定义模型?
答案 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())