2017-11-16 2 views
1

내 안드로이드 애플 리케이션에서, 나는 다음 json 데이터 구성을 desgin, json 데이터는 미래에 노드를 읽고, 추가, 업데이트 및 삭제됩니다.Android Studio 3.0을 사용할 때 json 데이터를 저장하는 방법은 무엇입니까?

json 데이터를 저장해야한다고 생각합니다. 어떻게 json 데이터를 유지할 수 있습니까? \ assets 폴더 아래에 텍스트 파일로 저장해야합니까?

이상, json 데이터를 처리하는 간단한 방법이 있습니까? Gson 라이브러리를 사용해야합니까?

{ 
    "Setting": [ 

     { 
     "id": "34345", 
     "Bluetooth": { "Status": "ON" }, 
     "WiFi": { "Name": "MyConnect", "Status": "OFF" } 
     } 
     , 

     { 
     "id": "16454", 
     "Bluetooth": { "Status": "OFF" } 
     } 

    ] 

} 

답변

2

대답 가장 쉬운 방법은 SharedPreferences 및 GSON을 사용하는 것입니다 https://stackoverflow.com/a/18463758/4265739

에 비교. Gradle을 파일에

추가 GSON 의존성 :

compile 'com.google.code.gson:gson:2.8.0' 

코 틀린 조정 코드는 저장 입니다 :

val prefsEditor = PreferenceManager.getDefaultSharedPreferences(this).edit() 
val json = Gson().toJson(yourObject) 
prefsEditor.putString("yourObject", json) 
prefsEditor.commit() 

가 검색 :

val json: String = sp.getString("yourObject", "") 
val yourObject = Gson().fromJson<YourObject>(json, YourObject::class.java) 

이 많이있는 경우 데이터는 에서 확인할 수 있습니다.

+0

감사합니다. SharedPreferences를 사용하여 json 문자열을 저장할 때 json의 문자 수에 제한이 있습니까? 예를 들어 json string의 문자 수는 256을 초과 할 수 없습니다. – HelloCW

+0

제한 사항은 데이터가 힙에 맞아야한다는 것입니다. 그래서 아니야. 그럼에도 불구하고 데이터가 ~ 1MB를 초과하면 SharedPreferences를 사용하지 않을 것입니다. 10MB가 넘는 앱도 존재합니다. – leoderprofi

관련 문제