Разбор компонента JSON, структура которого постоянно меняется в JAVA - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу извлечь все ключи и значение из компонента JSON. Вопрос в том, структура этого неизвестна. Я хочу проанализировать его в JAVA так, чтобы я мог получить любой элемент, используя имя ключа / поля.

Например:

В этом объекте CustomError находится в этом формате.

"CustomError": "{\" errors \ ": [{\" type \ ": \" INVALID_HTTP_VERB \ ", \" description \ ": \" Недопустимый глагол HTTP для запрошенного ресурса \ "}]}"

В этом в этом формате.

"CustomError": "{\" status \ ": {\" code \ ": 104050, \" user_message \ ": \" Method Not Разрешено \ ", \" developer_message \ ": \" Недопустимый метод http или метод не разрешен \ "}}"

Моя цель - получить все ключи и их значение.

Для 1-го пример: -

тип: INVALID_HTTP_VERB

описание: недопустимый глагол HTTP для запрошенного ресурса

Для 2-го примера: -

код: 104050

user_message: метод не разрешен

developer_message: недопустимый метод http или метод не разрешен

1 Ответ

1 голос
/ 28 апреля 2020

Вы используете библиотеку Google gson? Если это так, вы можете использовать объект JsonParser, как;

JsonElement j_element = new JsonParser().parse(YOUR_STRING);

Затем вы можете пройти по элементу в любой форме, в которой он находится, вы можете проверять типы, такие как element.IsJsonObject() или element.IsJsonArray() или что-то еще.

Вы также можете превратить элемент в объект, если он равен единице, и сделать object.has("value"), тогда, если это JsonObject, вы можете l oop через такие поля, как;

for (Map.Entry<String, JsonElement> entry : YOUR_OBJECT.entrySet()) 
{
    //do further bits
}
...