【问题标题】:Java API OpenWeatherMapJava API OpenWeatherMap
【发布时间】:2020-02-27 16:45:06
【问题描述】:

不久前我开始学习 Java,并打算做我的第一个高级(对我而言)项目。我想创建一个程序,使用 OpenWeatherMap API 来显示特定城市的天气。

  1. 用户输入城市名称
  2. 存储为变量的城市
  3. 使用城市变量调用 API
  4. 将结果存储在两个变量中(城市和温度)
  5. 使用 System.out.Println(City, Temp) 显示结果

我在开始之前做了一些阅读,我看到人们说将 api 结果存储在变量中是不好的做法?只是在开始之前检查我走的是正确的路线吗?

以下是 API 结果示例

{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle","description":"light intensity drizzle","icon":"09d"}],"base":"stations","main":{"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"visibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":90},"dt":1485789600,"sys":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset":1485794875},"id":2643743,"name":"London","cod":200}

【问题讨论】:

  • 将 HTTP 结果存储在变量中没有任何问题。通常,人们会使用诸如 GSON 之类的库来进行 JSON 解析。
  • “我看到人们说将 api 结果存储在变量中是不好的做法”哪些人,他们在哪里说的?

标签: java openweathermap


【解决方案1】:

不确定为什么将数据存储在变量中是不好的做法。另一种方法是链接方法。例如而不是这个:

String cityResult = callApi(city);
JSON jsonCityResult = JSON.parse(cityResult);
print(jsonCityResult.temp);

应该是:

print(JSON.parse(callApi(city)).temp);

它难以阅读、难以维护并且难以找出问题所在。是api调用还是JSON解析?

只要代码是“自我记录”,即cityResult 而不是cr,我认为这是可以接受的完美编程。

【讨论】:

    猜你喜欢
    • 2020-03-04
    • 1970-01-01
    • 2015-01-04
    • 2018-06-05
    • 2021-12-31
    • 1970-01-01
    • 2017-02-08
    • 2021-06-12
    • 2016-03-23
    相关资源
    最近更新 更多