如果可能的话,我更愿意使用com.fasterxml.jackson。 我正在寻找一种解析json的方法:
{
"availability":{
"48":{ //this is dynamic (in next response that number can be different, like 1023)
"2018-02-08":{ //this is dynamic
"temp":null
},
"2018-02-09":{ //this is dynamic
"temp":null
}
},
"49":{ //this is dynamic
"2018-02-08":{ //this is dynamic
"temp":null
},
"2018-02-09":{ //this is dynamic
"temp":null
}
}
}
}
答案 0 :(得分:0)
您可以通过谷歌使用GSON:
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
HttpClient httpClient = httpClientIgnoreCertificates();
HttpGet get = new HttpGet(uri);
HttpResponse response;
String responseEntity = null;
try {
response = httpClient.execute(get);
responseEntity = IOUtils.toString(response.getEntity().getContent(), "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
JsonArray jsonObjects = new Gson().fromJson(responseEntity,
JsonArray.class);
JsonArray items =
jsonObjects.get(0).getAsJsonObject().get("availability").getAsJsonArray();
而且你可以用你的jsonArray做行动..
答案 1 :(得分:0)
在fastxml Jackson中有两种方法可以做到这一点。
Api JsonNode
负责将输入String转换为可解析的Json对象。您可以在以下链接Baeldung's Site中找到使用它们的教程,API详细信息位于this link
我试过在这里运行你的例子,PFB调试截图...
在班级添加注释@JsonInclude(JsonInclude.Include.NON_NULL)
这将排除在对相应域对象进行非编组时为null的任何元素