首页 > 解决方案 > 我想从下面的 json 响应中创建一个 sub_activity_codes 对象列表

问题描述

我如何遍历下面的响应以发现没有进一步的 sub_activity_codes?响应有一个数据对象数组。我在这里只显示了第一个数据对象。每个对象都有 sub_activity_codes 数组,并且 sub_activity_codes 还包含另一个 sub_activity_codes 数组. 我想从中创建一个 sub_activity_codes 对象列表。

{
    "success": true,
    "data": [
        {
            "_id": "5dd2402536d946001053d28e",
            "activity_code_id": "1574060069553",
            "parent_id": null,
            "activity_code": "3",
            "description": null,
            "created_by": {
                "user_id": "1",
                "name": "Katerra Admin",
                "email": "admin@katerra.com"
            },
            "updated_by": {
                "user_id": "1",
                "name": "Katerra Admin",
                "email": "admin@katerra.com"
            },
            "sub_activity_codes": [
                {
                    "_id": "5dd2406636d946001053d28f",
                    "activity_code": "4",
                    "activity_code_id": "1574060134449",
                    "created_at": "2019-11-18T06:55:34.460Z",
                    "created_by": {
                        "user_id": "1",
                        "name": "Katerra Admin",
                        "email": "admin@katerra.com"
                    },
                    "description": null,
                    "level": 0,
                    "parent_id": "1574060069553",
                    "sub_activity_codes": [
                        {
                            "_id": "5dd2406e2a3c86000fb42463",
                            "activity_code": "5",
                            "activity_code_id": "1574060142303",
                            "created_at": "2019-11-18T06:55:42.319Z",
                            "created_by": {
                                "user_id": "1",
                                "name": "Katerra Admin",
                                "email": "admin@katerra.com"
                            },
                            "description": null,
                            "level": 1,
                            "parent_id": "1574060134449",
                            "sub_activity_codes": [
                                {
                                    "_id": "5df0d3ff7d32c500102efabf",
                                    "activity_code": "TEST6",
                                    "activity_code_id": "1576063999149",
                                    "created_at": "2019-12-11T11:33:19.175Z",
                                    "created_by": {
                                        "user_id": "126",
                                        "name": "Shrihari",
                                        "email": "srihari.hanasoge@cognitiveclouds.com"
                                    },
                                    "description": null,
                                    "level": 2,
                                    "parent_id": "1574060142303",
                                    "sub_activity_codes": [
                                        {
                                            "_id": "5df0d40887065c0010d4aed6",
                                            "activity_code": "TEST7",
                                            "activity_code_id": "1576064008910",
                                            "created_at": "2019-12-11T11:33:28.943Z",
                                            "created_by": {
                                                "user_id": "126",
                                                "name": "Shrihari",
                                                "email": "srihari.hanasoge@cognitiveclouds.com"
                                            },
                                            "description": null,
                                            "level": 3,
                                            "parent_id": "1576063999149",
                                            "sub_activity_codes": [
                                                {
                                                    "_id": "5df0db3087065c0010d4aed7",
                                                    "activity_code": "TEST8",
                                                    "activity_code_id": "1576065840671",
                                                    "created_at": "2019-12-11T12:04:00.714Z",
                                                    "created_by": {
                                                        "user_id": "80",
                                                        "name": "Sujay Kundu",
                                                        "email": "sujay.kundu@katerra.com"
                                                    },
                                                    "description": null,
                                                    "level": 4,
                                                    "parent_id": "1576064008910",
                                                    "sub_activity_codes": [],
                                                    "updated_at": "2019-12-11T12:04:00.714Z",
                                                    "updated_by": {
                                                        "user_id": "80",
                                                        "name": "Sujay Kundu",
                                                        "email": "sujay.kundu@katerra.com"
                                                    }
                                                }
                                            ],
                                            "updated_at": "2019-12-11T11:33:28.943Z",
                                            "updated_by": {
                                                "user_id": "126",
                                                "name": "Shrihari",
                                                "email": "srihari.hanasoge@cognitiveclouds.com"
                                            }
                                        }
                                    ],
                                    "updated_at": "2019-12-11T11:33:19.175Z",
                                    "updated_by": {
                                        "user_id": "126",
                                        "name": "Shrihari",
                                        "email": "srihari.hanasoge@cognitiveclouds.com"
                                    }
                                }
                            ],
                            "updated_at": "2019-11-18T06:55:42.319Z",
                            "updated_by": {
                                "user_id": "1",
                                "name": "Katerra Admin",
                                "email": "admin@katerra.com"
                            }
                        }
                    ],
                    "updated_at": "2019-11-18T06:55:34.460Z",
                    "updated_by": {
                        "user_id": "1",
                        "name": "Katerra Admin",
                        "email": "admin@katerra.com"
                    }
                }
            ]
        }
    ]
}

标签: androidjsonkotlin

解决方案


就个人而言,我会使用像Moshi这样的库来反序列化响应。

您还可以使用工具为您的响应创建模型,例如JsonToKotlinClass

之后,您可以轻松地完成您需要的逻辑,对吧?:)


推荐阅读