如何使用 API 引用 JSON 列表
How to reference a JSON List using an API
我会使用 getPressure 函数来引用列表中的压力场
{
"cod": "200",
"message": 0,
"cnt": 40,
"list": [
{
"dt": 1612558800,
"main": {
"temp": -3.29,
"feels_like": -6.55,
"temp_min": -3.29,
"temp_max": -3.16,
"pressure": 1021,
public String getPressure() {
JsonArray weatherArray = obj.getJsonArray("main");
JsonObject weatherObject = weatherArray.getJsonObject(0);
return weatherObject.getString("pressure");
}
如何正确编写getPressure函数从列表中获取压力值?
试试这个:
public String getPressure() {
JsonArray weatherArray = obj.getJsonArray("list"); // list: []
JsonObject weatherObject = weatherArray.getJsonObject(0); // first element of list
JsonObject mainObject = weatherObject.getJsonObject("main"); // get main object
return mainObject.getString("pressure"); // get Pressure of Main Object
}
建议
- 如果您打算在长期项目中使用它,请考虑定义相应的 beans(映射到 json 结构)
- 使用Jackson(ObjectMapper)或Gson来serialize/deserializeto/fromjson
当前解决方案
JsonObject input = new Gson().fromJson(json, JsonObject.class);
System.out.println(input.getAsJsonArray("list").get(0)
.getAsJsonObject().getAsJsonObject("main").get("pressure").getAsInt());
我会使用 getPressure 函数来引用列表中的压力场
{
"cod": "200",
"message": 0,
"cnt": 40,
"list": [
{
"dt": 1612558800,
"main": {
"temp": -3.29,
"feels_like": -6.55,
"temp_min": -3.29,
"temp_max": -3.16,
"pressure": 1021,
public String getPressure() {
JsonArray weatherArray = obj.getJsonArray("main");
JsonObject weatherObject = weatherArray.getJsonObject(0);
return weatherObject.getString("pressure");
}
如何正确编写getPressure函数从列表中获取压力值?
试试这个:
public String getPressure() {
JsonArray weatherArray = obj.getJsonArray("list"); // list: []
JsonObject weatherObject = weatherArray.getJsonObject(0); // first element of list
JsonObject mainObject = weatherObject.getJsonObject("main"); // get main object
return mainObject.getString("pressure"); // get Pressure of Main Object
}
建议
- 如果您打算在长期项目中使用它,请考虑定义相应的 beans(映射到 json 结构)
- 使用Jackson(ObjectMapper)或Gson来serialize/deserializeto/fromjson
当前解决方案
JsonObject input = new Gson().fromJson(json, JsonObject.class);
System.out.println(input.getAsJsonArray("list").get(0)
.getAsJsonObject().getAsJsonObject("main").get("pressure").getAsInt());