22

I have a data class with this class definition

data class AccountInfoResponse(
    @SerializedName("userprofile") val userprofiles: ArrayList<UserProfile>,
    @SerializedName("userpatients") val userpatients: ArrayList<UserPatient>
)

class UserPatient (
    @SerializedName("sex") val sex: String,
    @SerializedName("date of birth") val date_of_birth: String,
    @SerializedName("address") val address: String,
    @SerializedName("patientID") val patientId: Int,
    @SerializedName("first name") val first_name: String,
    @SerializedName("clinicName") val clinic_name: String,
    @SerializedName("clinicID") val clinicId: Int,
    @SerializedName("mobile") val mobile: String,
    @SerializedName("last name") val last_name: String
)

I need to convert this class to be json string like this

{"userpatients":[{"sex":"male","date of birth":"2010-01-03","image":"","clinics":[1],"primary_provider":[{"clinic":1,"patient":1,"providers":1}],"role":"patient","last name":"John","address":"300 east main st.  San Jose, Ca 95014","first name":"John","username":"John","email":"[email protected]","mobile":"+88083918427"}],"userpatients":[{"sex":"female","date of birth":"2000-01-01","address":"fawal st1","patientID":1,"first name":"john","clinicName":"light house peds","clinicID":1,"mobile":"8056688042","last name":"john"}]}
0

2 Answers 2

25

I can see that you want to serialize the ArrayList<UserPatient>. You can do it easily with Gson.

Example:

val response = AccountInfoResponse(/* Here goes the objects that is needed to create instance of this class */)

val jsonString = Gson().toJson(response.userpatients)

Output:

{"userpatients":[{"sex":"male","date of birth":"2010-01-03","image":"","clinics":[1],"primary_provider":[{"clinic":1,"patient":1,"providers":1}],"role":"patient","last name":"John","address":"300 east main st.  San Jose, Ca 95014","first name":"John","username":"John","email":"[email protected]","mobile":"+88083918427"}],"userpatients":[{"sex":"female","date of birth":"2000-01-01","address":"fawal st1","patientID":1,"first name":"john","clinicName":"light house peds","clinicID":1,"mobile":"8056688042","last name":"john"}]}
Sign up to request clarification or add additional context in comments.

Comments

0

inspired by previous answer I enabled it to recognize all fields null valued included :


    val builder = GsonBuilder()
    builder.serializeNulls()
    val gson = builder.setPrettyPrinting().create()
    val json= gson.toJson(obj)
    if (BuildConfig.DEBUG) {
        Log.i("@@@!", "myjson  " + json)
    }

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.