解析结构总是在 JAVA 中变化的 JSON 组件

Parsing a JSON component whose structure is always changing in JAVA

我想从 JSON 组件中提取所有键和值。问题是这个结构是未知的。我想在 JAVA 中解析它,以便我可以使用 key/field 名称检索任何元素。

例如:

在此 CustomError 对象中采用此格式。

"CustomError": "{\"errors\": [{ \"type\": \"INVALID_HTTP_VERB\", \"description\": \"Invalid HTTP verb for the requested resource\" }]}"

在此格式中。

"CustomError": "{\"status\":{\"code\":104050,\"user_message\":\"Method Not Allowed\",\"developer_message\":\"Invalid http method or method not allowed\"}}"

我的目标是获取所有键及其值。

第一个例子:-

type : INVALID_HTTP_VERB

description : Invalid HTTP verb for the requested resource

For 2nd example :-

code : 104050

user_message : Method Not Allowed

developer_message : Invalid http method or method not allowed

您在使用 Google gson 库吗?如果是这样,您可以像这样使用 JsonParser 对象;

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

然后您可以以任何形式遍历该元素,您可以检查 element.IsJsonObject()element.IsJsonArray() 等类型。

你也可以把元素变成一个对象,如果是一个,然后做 object.has("value") 然后如果它是一个 JsonObject 你可以循环遍历这样的字段;

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