KOTLIN에서 API의 엔티티 응답 출력 유형 내부의 키에서 내부 JSONObject에서 값을 추출하는 방법은 무엇입니까?

베냐민

ResponseEntity <JSONObject> 변수 "result"에서 JSONObjects 배열을 가져 오려고했습니다.

 <200 OK,{"response":"success","count":0,"maintenanceDetails":[{"date":"2020\/08\/21","activity":"TestActivity","operatorName":"Operator","operator":"Mock for Party, hashCode: 552416003","status":"Open"}],"buildingId":Mock for UUID, hashCode: 2141932519},{}>

결과 출력값은 위와 같습니다.

val result = dashBoardService!!.getMaintenanceStateByBuildingId(id)

println("Result "+result.body["maintenanceDetails"])

val a =result.body["maintenanceDetails"] as Array<JSONObject>
println("A  "+ a.first().get("activity"))

result.body [ "maintenanceDetails"]는 일반적으로 더 이상 추출 할 수없는 "Any"유형으로 제공되므로 "as Array <JSONObject>"를 사용하여 변환합니다. 그러나 이것은 나에게 오류를 제공합니다.

java.lang.ClassCastException : java.util.ArrayList를 [Lorg.json.simple.JSONObject로 캐스트 할 수 없습니다.

필요한 것은 Array에서 첫 번째 JSONObject가 result.body [ "maintenanceDetails"]에 해당하여 어설 션 검사에서 사용할 수 있도록하는 것입니다. 친절하게 도와주세요.

베냐민

변환은 Intelij에서 util.ArrayList로 간주되기 때문에 ArrayList로 작동하므로 내부에서 데이터를 가져올 수 있습니다.

val tempArr= result.body["maintenanceDetails"] as ArrayList<JSONObject>


assertEquals(tempArr[0]["activity"],maintenanceState.activity)
assertEquals(tempArr[0]["status"],maintenanceState.status)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관