Android <> Backend 서로 데이터를 전송하는 방식을 Restful이라고 한다.
Backend에서 Android로 데이터를 넘겨줄땐 Json으로 해석되어 넘겨준다.
웹상에 올라가 있는 데이터가 있다고 가정
data.json
main폴더에 assets폴더를 생성한 후 data.json파일을 생성
(assets폴더는 보여지지 않을 뿐 지원이 되는 폴더. 아무폴더나 생성X)
// 단순 출력시킬 데이터역할
[
{
"id" : "Kotlin",
"language" : "코틀린"
},
{
"id" : "Java",
"language" : "자바"
},
{
"id": "swift",
"language": "스위프트"
}
]
MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 문자열
val jsonStr = assets.open("data.json").reader().readText()
// assets는 지원이 되는 폴더라 사용 가능(다른 폴더 임의 사용 불가)
Log.d("jsonStr", jsonStr)
// Json으로 파싱
val jsonArray = JSONArray(jsonStr)
Log.d("jsonStr", jsonArray.toString())
val textView = findViewById<TextView>(R.id.textView)
for(i in 0 until jsonArray.length()){
// 코틀린, 자바, 스위프트 하나씩 가져오기 위해서
val jsonObject = jsonArray.getJSONObject(i)
textView.append("\n-------------------------------------\n")
// data.json id의 데이터를 id변수에 넣어줌
val id = jsonObject.getString("id")
val language = jsonObject.getString("language")
// append는 기존 내용을 유지한 채 뒤에 데이터를 넣어주는 메서드(setText는 내용을 지우고 새로 세팅)
// """사용시 다중 문자열 표기
// """사용하여 문자열을 작성하면 공백과 탭 모두 포함하여 .trimIndent를 사용하여 들여쓰기 제거
textView.append(
"""
$id
""".trimIndent()
)
textView.append(
"""
$language
""".trimIndent()
)
}
}
}
'안드로이드' 카테고리의 다른 글
[Android] Singleton (0) | 2022.03.31 |
---|---|
[Android] Preferences (0) | 2022.03.31 |
[Android] File(추후 작성) (0) | 2022.03.31 |
[Android] Clock (0) | 2022.03.28 |
[Android] DatePicker (0) | 2022.03.28 |
댓글