代码之家  ›  专栏  ›  技术社区  ›  mafortis

API数据的Kotlin类

  •  0
  • mafortis  · 技术社区  · 4 年前

    {
        "data": [
            {
                "id": "a3d9b20a-f84c-483e-81af-f8d6a7e2de0f",
                "amount": 11000,
                "transport": 29000,
                "total": 183000,
                "weight": 14,
                "payment": "Cash",
                "payment_id": null,
                "payment_method": null,
                "accepted": 0,
                "customer": {
                    "id": "2c8693d9-76ff-4bad-b7bd-bc3a1446a5e5",
                    "name": "Admin",
                    "store": false,
                    "phone": null,
                    "photo": null,
                    "email": "admin@admin.com",
                    "address": null,
                    "role": "admin",
                    "created_at": "2021-01-27T03:50:24.000000Z"
                },
                "laundry": {
                    "id": "acfa7e2e-aeb9-40d6-a68c-b6c259468b6b",
                    "name": "Test 01",
                    "email": "gfg@jhjgj.gfu",
                    "phone": "5344454",
                    "address": "gfvfggfggkh",
                    "photo": "http://example.com/images/3a1690bd48161f941b99af72c0098e34-1611653771.jpg",
                    "verified": 1,
                    "created_at": "2021-01-26T02:36:12.000000Z"
                },
                "driver": {
                    "id": "7c5715e2-2e73-4103-a439-bc54d9982552",
                    "dob": "17-11-1888",
                    "gender": "male",
                    "expire_date": "11 22",
                    "plat_nu": "F 4152 FSD",
                    "vehicle_brand": "Suzuki",
                    "vehicle_type": "Motor",
                    "no_sim": null,
                    "exp_sim": null,
                    "no_skck": null,
                    "photo_sim": null,
                    "photo_ktp": null,
                    "orders": [
                        {
                            "id": "a3d9b20a-f84c-483e-81af-f8d6a7e2de0f",
                            "user_id": "2c8693d9-76ff-4bad-b7bd-bc3a1446a5e5",
                            "laundry_id": "acfa7e2e-aeb9-40d6-a68c-b6c259468b6b",
                            "driver_id": "7c5715e2-2e73-4103-a439-bc54d9982552",
                            "amount": 11000,
                            "transport": 29000,
                            "total": 183000,
                            "weight": 14,
                            "payment": "Cash",
                            "payment_id": null,
                            "payment_method": null,
                            "accepted": 0,
                            "created_at": "2021-01-31T02:21:37.000000Z",
                            "updated_at": "2021-01-31T02:21:37.000000Z"
                        },
                        {
                            "id": "c3d0b768-e461-48da-8dd6-c23d88562f9a",
                            "user_id": "2c8693d9-76ff-4bad-b7bd-bc3a1446a5e5",
                            "laundry_id": "acfa7e2e-aeb9-40d6-a68c-b6c259468b6b",
                            "driver_id": "7c5715e2-2e73-4103-a439-bc54d9982552",
                            "amount": 17000,
                            "transport": 15000,
                            "total": 267000,
                            "weight": 14,
                            "payment": "Cash",
                            "payment_id": null,
                            "payment_method": null,
                            "accepted": 0,
                            "created_at": "2021-02-01T02:19:25.000000Z",
                            "updated_at": "2021-02-01T02:19:25.000000Z"
                        }
                    ],
                    "created_at": "2021-01-29T04:36:23.000000Z"
                },
                "progresses": [
                    {
                        "id": "6d4f502a-dab3-4419-8edf-84e73214b8be",
                        "order_id": "a3d9b20a-f84c-483e-81af-f8d6a7e2de0f",
                        "progress_id": "dc06eae1-a071-4ac0-a79d-a9c1ea737b05",
                        "created_at": "2021-01-31T02:21:37.000000Z",
                        "updated_at": "2021-01-31T02:21:37.000000Z",
                        "progress": {
                            "id": "dc06eae1-a071-4ac0-a79d-a9c1ea737b05",
                            "name": "Menginformasikan",
                            "photo": null,
                            "created_at": null,
                            "updated_at": null
                        }
                    }
                ],
                "services": [
                    {
                        "id": "036ff19b-91e3-47ec-8804-333f21027db7",
                        "name": null,
                        "photo": null,
                        "created_at": "2021-01-31T02:21:37.000000Z"
                    },
                    {
                        "id": "9a895f79-492d-416f-96ea-670567a69375",
                        "name": null,
                        "photo": null,
                        "created_at": "2021-01-31T02:21:37.000000Z"
                    }
                ],
                "created_at": "2021-01-31T02:21:37.000000Z"
            }
        ],
        "message": "Data are ready."
    }
    

    如您所见,我的主数据下有相对数据,有些是对象,有些是数组。

    问题

    data class 例如:

    data class Orders (
        val id: String?,
        val amount: String?,
        val transport: String?,
        val total: String?,
        val weight: String?,
        val payment: String?,
        val payment_id: String?,
        val payment_method: String?,
        val accepted: String?,
    ) {
    }
    

    1. customer (对象)
    2. laundry
    3. driver (对象->下面还有数组)
    4. progresses (数组)
    5. services (数组)
    1 回复  |  直到 4 年前
        1
  •  4
  •   Sasi Kumar    4 年前

    在将api响应转换为数据类时,创建数据模型类,如在下面。那么根据需要由其他数据类访问。

    data class Orders(
    val `data`: List<Data>,
    val message: String
    )
    
    
    data class Data(
    val accepted: Int,
    val amount: Int,
    val created_at: String,
    val customer: Customer,
    val driver: Driver,
    val id: String,
    val laundry: Laundry,
    val payment: String,
    val payment_id: Any,
    val payment_method: Any,
    val progresses: List<Progresse>,
    val services: List<Service>,
    val total: Int,
    val transport: Int,
    val weight: Int
     )
    
    data class Order(
    val accepted: Int,
    val amount: Int,
    val created_at: String,
    val driver_id: String,
    val id: String,
    val laundry_id: String,
    val payment: String,
    val payment_id: Any,
    val payment_method: Any,
    val total: Int,
    val transport: Int,
    val updated_at: String,
    val user_id: String,
    val weight: Int
    )
    
    data class Progress(
    val created_at: Any,
    val id: String,
    val name: String,
    val photo: Any,
    val updated_at: Any
    )
    
    data class Progresse(
    val created_at: String,
    val id: String,
    val order_id: String,
    val progress: Progress,
    val progress_id: String,
    val updated_at: String
    )
    
    data class Driver(
    val created_at: String,
    val dob: String,
    val exp_sim: Any,
    val expire_date: String,
    val gender: String,
    val id: String,
    val no_sim: Any,
    val no_skck: Any,
    val orders: List<Order>,
    val photo_ktp: Any,
    val photo_sim: Any,
    val plat_nu: String,
    val vehicle_brand: String,
    val vehicle_type: String
    )
    
    
    data class Laundry(
    val address: String,
    val created_at: String,
    val email: String,
    val id: String,
    val name: String,
    val phone: String,
    val photo: String,
    val verified: Int
    )
    
    
    data class Customer(
    val address: Any,
    val created_at: String,
    val email: String,
    val id: String,
    val name: String,
    val phone: Any,
    val photo: Any,
    val role: String,
    val store: Boolean
    )