Android 在JSON对象中解析JSON对象

Android 在JSON对象中解析JSON对象,android,json,parsing,retrofit,Android,Json,Parsing,Retrofit,我想使用改型解析Json对象。解析“电话”和“地址”的最佳方法是什么? 多谢各位 { "name": "Miss Piggy", "id": "13", "companyName": "Muppets, Baby", "isFavorite": false, "smallImageURL": &qu

我想使用改型解析Json对象。解析“电话”和“地址”的最佳方法是什么? 多谢各位

{
    "name": "Miss Piggy",
    "id": "13",
    "companyName": "Muppets, Baby",
    "isFavorite": false,
    "smallImageURL": "https://s3.amazonaws.com/technical-challenge/v3/images/miss-piggy-small.jpg",
    "largeImageURL": "https://s3.amazonaws.com/technical-challenge/v3/images/miss-piggy-large.jpg",
    "emailAddress": "Miss.Piggy@muppetsbaby.com",
    "birthdate": "1987-05-11",
    "phone": {
        "work": "602-225-9543",
        "home": "602-225-9188",
        "mobile": ""
    },
    "address": {
        "street": "3530 E Washington St",
        "city": "Phoenix",
        "state": "AZ",
        "country": "US",
        "zipCode": "85034"
    }
}

您可以使用一个JSON解析库(比如or)和正确的参数来创建类(kotlin中的数据类)来解析嵌入对象

科特林的一个例子

响应类

data class Response (
    val name: String,
    val id: String,
    val companyName: String,
    val isFavorite: Boolean,
    val smallImageURL: String,
    val largeImageURL: String,
    val emailAddress: String,
    val birthdate: String,
    val phone: Phone,
    val address: Address) 
地址类

data class Address (
    val street: String,
    val city: String,
    val state: String,
    val country: String,
    val zipCode: String )
电话类

data class Phone (
    val work: String,
    val home: String,
    val mobile: String)

有关更多详细信息,请参见示例

如果您计划从任何子JSON对象获取任何字符串的值,那么使用Android JAVA内置的JSON解析器可以帮助您无需任何新库

JSONObject jsonObject = new JSONObject(s);
// extract phone object
JSONObject phoneJsonObject = jsonObject.getJSONObject("phone");
// we can any data of the sub json object of main object
// get string value of work
String valueOfWork = phoneJsonObject.getString("work");

// extract address object
JSONObject addressJsonObject = jsonObject.getJSONObject("address");
// we can any data of the sub json object of main object
// get string value of street
String valueOfStreet = phoneJsonObject.getString("street");

Log.i("Getting Value of Work from Phone Object", valueOfWork);
Log.i("Getting Value of Street from Address Object", valueOfStreet);

这回答了你的问题吗?