2017-12-27 44 views
0

this 질문과 마찬가지로, 개체 (실제로는 개장 당시의 API 응답)를 json 문자열로 변환하고 싶으므로 어딘가에 저장하는 것이 더 간단 할 것입니다.Goton toJson 및 Kotlin의 ArrayList

응답 구조는이 같은 것입니다 :

{ 
    "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에 전달 해요 매개 변수의 :

var contentResponse: String = "" 
try{ 
    this.contentResponse.plus(Gson().toJson(response)) 
} catch (e: Exception){ 
    Log.e("Gson error", e.toString()) 
} 

불행히도 예외는 없지만 내 contentResponse은 계속 비워 둡니다. 나는 위에서 언급 한 질문에서이 방법을 사용하려했지만 같은 결과를 얻었다. 어떤 조언?

추 신 : String에서 개조 반응을 얻는 쉬운 방법이 있다면 도움이 될 수도 있습니다.

답변

2

문자열은 JVM에서 변경할 수 없습니다.

this.contentResponse.plus(Gson().toJson(response)) 

를 호출하면

this.contentResponse + (Gson().toJson(response)) 

당신이 무엇이든 그 결과를 assiging되지 않도록 잘 볼 수있는이 방법과 동일합니다. 변경 :

this.contentResponse = this.contentResponse.plus(Gson().toJson(response)) 
+0

tks! 그것은 효과가 있었다. 마 나쁜 ... –