android - 使用动态 JSON 对象名称解析 JSON?

标签 android json

我知道 JSON 解析,但在我当前的项目中,我得到了一些不同类型的 JSON 格式,其中所有对象的名称都是动态的,并且它们可能会发生变化。

{
    "category_id": "1",
    "parent_id": "0",
    "name": "Root Catalog",
    "is_active": null,
    "position": "0",
    "level": "0",
    "children": {
        "0": {
            "category_id": "2",
            "parent_id": "1",
            "name": "Default Category",
            "is_active": "1",
            "position": "1",
            "level": "1",
            "children": {
                "0": {
                    "category_id": "32",
                    "parent_id": "2",
                    "name": "Services",
                    "is_active": "1",
                    "position": "1",
                    "level": "2",
                    "children": {
                        "0": {
                            "category_id": "20",
                            "parent_id": "32",
                            "name": "Makeup",
                            "is_active": "1",
                            "position": "1",
                            "level": "3",
                            "children": {
                                "0": {
                                    "category_id": "22",
                                    "parent_id": "20",
                                    "name": "Bridal Makeup",
                                    "is_active": "1",
                                    "position": "1",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "1": {
                                    "category_id": "23",
                                    "parent_id": "20",
                                    "name": "General Makeup",
                                    "is_active": "1",
                                    "position": "2",
                                    "level": "4",
                                    "children": {

                                    }
                                }
                            }
                        },
                        "1": {
                            "category_id": "21",
                            "parent_id": "32",
                            "name": "Skin Services",
                            "is_active": "1",
                            "position": "2",
                            "level": "3",
                            "children": {
                                "0": {
                                    "category_id": "24",
                                    "parent_id": "21",
                                    "name": "Bleach",
                                    "is_active": "1",
                                    "position": "1",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "1": {
                                    "category_id": "25",
                                    "parent_id": "21",
                                    "name": "Cleanup",
                                    "is_active": "1",
                                    "position": "2",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "2": {
                                    "category_id": "26",
                                    "parent_id": "21",
                                    "name": "General Facials",
                                    "is_active": "1",
                                    "position": "3",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "3": {
                                    "category_id": "27",
                                    "parent_id": "21",
                                    "name": "Masks",
                                    "is_active": "1",
                                    "position": "4",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "4": {
                                    "category_id": "28",
                                    "parent_id": "21",
                                    "name": "Special Facials",
                                    "is_active": "1",
                                    "position": "5",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "5": {
                                    "category_id": "29",
                                    "parent_id": "21",
                                    "name": "Threading",
                                    "is_active": "1",
                                    "position": "6",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "6": {
                                    "category_id": "30",
                                    "parent_id": "21",
                                    "name": "Waxing",
                                    "is_active": "1",
                                    "position": "7",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "7": {
                                    "category_id": "38",
                                    "parent_id": "21",
                                    "name": "Special Services",
                                    "is_active": "1",
                                    "position": "8",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "8": {
                                    "category_id": "40",
                                    "parent_id": "21",
                                    "name": "Lip Care",
                                    "is_active": "1",
                                    "position": "9",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "9": {
                                    "category_id": "41",
                                    "parent_id": "21",
                                    "name": "Eye Care",
                                    "is_active": "1",
                                    "position": "10",
                                    "level": "4",
                                    "children": {

                                    }
                                }
                            }
                        },
                        "2": {
                            "category_id": "3",
                            "parent_id": "32",
                            "name": "Body Services",
                            "is_active": "1",
                            "position": "3",
                            "level": "3",
                            "children": {
                                "0": {
                                    "category_id": "4",
                                    "parent_id": "3",
                                    "name": "Body Wraps",
                                    "is_active": "1",
                                    "position": "1",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "1": {
                                    "category_id": "5",
                                    "parent_id": "3",
                                    "name": "Reflexology",
                                    "is_active": "1",
                                    "position": "2",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "2": {
                                    "category_id": "6",
                                    "parent_id": "3",
                                    "name": "Special Body Services",
                                    "is_active": "1",
                                    "position": "3",
                                    "level": "4",
                                    "children": {

                                    }
                                }
                            }
                        },
                        "3": {
                            "category_id": "7",
                            "parent_id": "32",
                            "name": "Hair Services",
                            "is_active": "1",
                            "position": "4",
                            "level": "3",
                            "children": {
                                "0": {
                                    "category_id": "8",
                                    "parent_id": "7",
                                    "name": "Chemical Treatments",
                                    "is_active": "0",
                                    "position": "1",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "1": {
                                    "category_id": "42",
                                    "parent_id": "7",
                                    "name": "Hair Extensions",
                                    "is_active": "1",
                                    "position": "2",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "2": {
                                    "category_id": "9",
                                    "parent_id": "7",
                                    "name": "Hair Color",
                                    "is_active": "1",
                                    "position": "3",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "3": {
                                    "category_id": "10",
                                    "parent_id": "7",
                                    "name": "Haircut",
                                    "is_active": "1",
                                    "position": "4",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "4": {
                                    "category_id": "11",
                                    "parent_id": "7",
                                    "name": "Hair Straightening",
                                    "is_active": "1",
                                    "position": "5",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "5": {
                                    "category_id": "12",
                                    "parent_id": "7",
                                    "name": "Hair Styling",
                                    "is_active": "1",
                                    "position": "6",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "6": {
                                    "category_id": "13",
                                    "parent_id": "7",
                                    "name": "Hair Treatments",
                                    "is_active": "1",
                                    "position": "7",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "7": {
                                    "category_id": "14",
                                    "parent_id": "7",
                                    "name": "Other Hair Services",
                                    "is_active": "1",
                                    "position": "8",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "8": {
                                    "category_id": "15",
                                    "parent_id": "7",
                                    "name": "Special Hair Services",
                                    "is_active": "1",
                                    "position": "9",
                                    "level": "4",
                                    "children": {

                                    }
                                }
                            }
                        },
                        "4": {
                            "category_id": "16",
                            "parent_id": "32",
                            "name": "Hands And Feet",
                            "is_active": "1",
                            "position": "5",
                            "level": "3",
                            "children": {
                                "0": {
                                    "category_id": "17",
                                    "parent_id": "16",
                                    "name": "Manicure",
                                    "is_active": "1",
                                    "position": "1",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "1": {
                                    "category_id": "18",
                                    "parent_id": "16",
                                    "name": "Nail Art",
                                    "is_active": "1",
                                    "position": "2",
                                    "level": "4",
                                    "children": {

                                    }
                                },
                                "2": {
                                    "category_id": "19",
                                    "parent_id": "16",
                                    "name": "Pedicure",
                                    "is_active": "1",
                                    "position": "3",
                                    "level": "4",
                                    "children": {

                                    }
                                }
                            }
                        }
                    }
                },
                "1": {
                    "category_id": "33",
                    "parent_id": "2",
                    "name": "Memberships",
                    "is_active": "1",
                    "position": "2",
                    "level": "2",
                    "children": {

                    }
                },
                "2": {
                    "category_id": "34",
                    "parent_id": "2",
                    "name": "Packages",
                    "is_active": "1",
                    "position": "3",
                    "level": "2",
                    "children": {

                    }
                },
                "3": {
                    "category_id": "35",
                    "parent_id": "2",
                    "name": "Offers",
                    "is_active": "1",
                    "position": "4",
                    "level": "2",
                    "children": {

                    }
                },
                "4": {
                    "category_id": "36",
                    "parent_id": "2",
                    "name": "Customer Reviews",
                    "is_active": "1",
                    "position": "5",
                    "level": "2",
                    "children": {

                    }
                },
                "5": {
                    "category_id": "37",
                    "parent_id": "2",
                    "name": "Gallery",
                    "is_active": "1",
                    "position": "6",
                    "level": "2",
                    "children": {

                    }
                },
                "6": {
                    "category_id": "31",
                    "parent_id": "2",
                    "name": "Contact us",
                    "is_active": "1",
                    "position": "7",
                    "level": "2",
                    "children": {

                    }
                }
            }
        }
    }
}

所以在 doInBackground() 中,我做的如下:-

@Override
protected String doInBackground(String... params) {

    ServiceHandler serviceHandler = new ServiceHandler();
    String jsonStr = serviceHandler.makeServiceCall(
            Constants.SIDE_DRAWER_SERVICES, ServiceHandler.GET);
    try {
        JSONObject jobj = new JSONObject(jsonStr);
        Log.d("", "" + jsonStr.toString());
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return jsonStr;
}

在字符串“jsonStr”中,我得到了完整的响应数据,但是当将其转换为 JSONObject 时,如“JSONObject jobj = new JSONObject(jsonStr);”我缺少这样的数据:-

{
    "position": "0",
    "children": {
        "0": {
            "position": "1",
            "children": {
                "3": {
                    "position": "4",
                    "children": {

                    },
                    "category_id": "35",
                    "level": "2",
                    "is_active": "1",
                    "name": "Offers",
                    "parent_id": "2"
                },
                "2": {
                    "position": "3",
                    "children": {

                    },
                    "category_id": "34",
                    "level": "2",
                    "is_active": "1",
                    "name": "Packages",
                    "parent_id": "2"
                },
                "1": {
                    "position": "2",
                    "children": {

                    },
                    "category_id": "33",
                    "level": "2",
                    "is_active": "1",
                    "name": "Memberships",
                    "parent_id": "2"
                },
                "0": {
                    "position": "1",
                    "children": {
                        "3": {
                            "position": "4",
                            "children": {
                                "3": {
                                    "position": "4",
                                    "children": {

                                    },
                                    "category_id": "10",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Haircut",
                                    "parent_id": "7"
                                },
                                "2": {
                                    "position": "3",
                                    "children": {

                                    },
                                    "category_id": "9",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Hair Color",
                                    "parent_id": "7"
                                },
                                "1": {
                                    "position": "2",
                                    "children": {

                                    },
                                    "category_id": "42",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Hair Extensions",
                                    "parent_id": "7"
                                },
                                "0": {
                                    "position": "1",
                                    "children": {

                                    },
                                    "category_id": "8",
                                    "level": "4",
                                    "is_active": "0",
                                    "name": "Chemical Treatments",
                                    "parent_id": "7"
                                },
                                "7": {
                                    "position": "8",
                                    "children": {

                                    },
                                    "category_id": "14",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Other Hair Services",
                                    "parent_id": "7"
                                },
                                "6": {
                                    "position": "7",
                                    "children": {

                                    },
                                    "category_id": "13",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Hair Treatments",
                                    "parent_id": "7"
                                },
                                "5": {
                                    "position": "6",
                                    "children": {

                                    },
                                    "category_id": "12",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Hair Styling",
                                    "parent_id": "7"
                                },
                                "4": {
                                    "position": "5",
                                    "children": {

                                    },
                                    "category_id": "11",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Hair Straightening",
                                    "parent_id": "7"
                                },
                                "8": {
                                    "position": "9",
                                    "children": {

                                    },
                                    "category_id": "15",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Special Hair Services",
                                    "parent_id": "7"
                                }
                            },
                            "category_id": "7",
                            "level": "3",
                            "is_active": "1",
                            "name": "Hair Services",
                            "parent_id": "32"
                        },
                        "2": {
                            "position": "3",
                            "children": {
                                "2": {
                                    "position": "3",
                                    "children": {

                                    },
                                    "category_id": "6",
                                    "level": "4",
                                    "is_active": "1",
                                    "name": "Special Body Services",
                                    "parent_id": "3"
                                },
                                "1": {
                                    "position": "2",
                                    "children": {

                                    },

我不知道我的 JSON 发生了什么。请帮助我并告诉我 JSON 是否无效。

最佳答案

终于解决了,在调试的时候,string显示所有的数据不管多少,但是在JSONObject中所有的数据都可用但是在调试时不显示。当从JSONObject中检索数据时我获取调试器中未显示的所有字段。

关于android - 使用动态 JSON 对象名称解析 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27378287/

相关文章:

php - 错误 : No value for "ColumnName". 在 Android 中获取 JSON 值

json - 数据工厂中不同的 JSON 模式

java - 解压缩文件将文件转换为字节

android - 带有 StickyListHeaders 的 SwipeActionAdapter

android - 为什么 Handler , Timer 只运行一次?

javascript - JSON:.NET MVC3 中的 500(内部服务器服务器错误)

android - 设备崩溃

android - 在后台将Android设备中的数据发送到服务器,对用户的影响最小

json - 快速登录到 json API

c# - 服务器端和客户端方法