Аналогично этому вопросу я хотел бы преобразовать объект (фактически, это ответ API от модификации) в строку json, поэтому было бы проще хранить его где-нибудь.
Структура ответа выглядит примерно так:
{ "metadata": { "count": 0, "type": "string" }, "results": [ { "obj1": { "param1": "s1", "param2": "s2" }, "obj2": { "param3": 0, "param4": 0, "param5": 0 }, "obj3": 0, "obj4": "27/12/2017" } ] }
Используя retrofit2, у меня есть массив результатов, хранящийся в List<MyResponse.Result>
и это параметр, который я Gson().toJson
в Gson().toJson
, например:
var contentResponse: String = "" try{ this.contentResponse.plus(Gson().toJson(response)) } catch (e: Exception){ Log.e("Gson error", e.toString()) }
К сожалению, я не получаю исключения, но мой contentResponse
остается пустым. Я попытался использовать метод в упомянутом выше вопросе, но получил тот же результат. Все советы?
PS: Если есть более простой способ получить модифицированный ответ в String, это также может помочь.
Строки неизменны в JVM. призвание
this.contentResponse.plus(Gson().toJson(response))
эквивалентно
this.contentResponse + (Gson().toJson(response))
Таким образом, вы можете лучше видеть, что вы ничего не понимаете. Измените его на
this.contentResponse = this.contentResponse.plus(Gson().toJson(response))