首页 > 解决方案 > 在JAVA中遍历多个JSON数组

问题描述

我想知道是否有人可以提供帮助。如果给定 JSON 对象中错误的位置,是否有一种简单有效的方法来遍历 JSON 对象?例如,假设我使用下面的 JSON 请求访问了一个服务,它返回一个错误的请求,指出字段中的值: Cars[1]。制造商 [2].CarDetails[Doors] 无效(请求的最后一个元素 - 带有 100 个门的 Toyota Hybrid)。
鉴于返回的错误,是否有一种简单的方法可以遍历请求以提取该汽车的注册?即在下面的示例中,Toyato Hybrid 上的门的值无效,因为它是 100。我希望能够遍历我的 JSON 请求以撤回有问题的车辆的注册。在此示例中,应返回“Reg123”。

任何帮助是极大的赞赏。

"Cars": [{
    "Manufacturers": [{
            "Manufacturer": "Audi"
            "CarDetails": {
                "Model": "A4",
                "Doors": "3",
                "Registration": "abc123",
                "Transmission": "Automatic"
            }
        }, {
            "Manufacturer": "BMW",
            "CarDetails": {
                "Model": "X1",
                "Doors": "3",
                "Registration": "abc123",
                "Transmission": "Manual"
            }
        }, {
            "Manufacturer": "Renault"
            "CarDetails": {
                "Model": "Megane",
                "Doors": "3",
                "Registration": "abc123",
                "Transmission": "Automatic"
            }
        }
    ]
}, {
    "Manufacturers": [{
            "Manufacturer": "Citroen"
            "CarDetails": {
                "Model": "C3",
                "Doors": "3",
                "Registration": "abc123",
                "Transmission": "Automatic"
            },
        }, {
            "Manufacturer": "Seat"
            "CarDetails": {
                "Model": "Leon",
                "Doors": "3",
                "Registration": "abc123",
                "Transmission": "Automatic"
            },
        }, {
            "Manufacturer": "Toyota",
            "CarDetails": {
                "Model": "Hybrid",
                "Doors": "100",
                "Registration": "Reg123",
                "Transmission": "Manual"
            }
        }
    ]
}

]

标签: javajson

解决方案


如果您使用的是弹簧靴,则可以使用

org.springframework.boot.configurationprocessor.json

打包并执行以下操作:

response.getJSONArray("Cars").getJSONObject(1).getJSONArray("Manufacters").getJSONObject(2).getJSONObject("CarDetails").getString("Doors")

除了这一行,您还必须处理 JSONException 异常


推荐阅读