当前位置: 首页 > 知识库问答 >
问题:

从JSON读Java

云霖
2023-03-14

我希望把天气从我在Netbeans Java项目中使用的天气API转换成我自己的Maven API,这一切都很好,但当我想把它分解成更小的可读文本时,会返回一个巨大的JSON响应。

我的代码当前正在返回:

{“COORD”:{“LON”:-6.26,“LAT”:53.35},“天气”:[{“ID”:801,“主要”:“云”,“描述”:“少量云”,“html" target="_blank">图标”:“02D”}],“基本”:“站点”,“主要”:{“温度”:285.59,“压力”:1015,“湿度”:58,“TEMP_MIN”:285.15,“TEMP_MAX”:286.15},“能见度”:10000,“风力”:{“速度”:3.6,“DEG”:80},“云”:{“全部”:20},“DT”:1539610200,“SYS”:{“类型”:1,“ID”:5237,“消息”:0.0027,“国家”:“IE”,“日出”:1539586357,“日落”:1539624469},“ID”:2964574,“名称”:“都柏林”,“鳕鱼”:200}

相反,我希望它能够返回,主要是在天气和天气临时。如果有人有任何想法,让我知道。代码已附上。

public class WeatherInfo {
     public static String getWeather(String city) {
        String weather;
        String getUrl = "http://api.openweathermap.org/data/2.5/weather?q="+ city +"&appid=xxx";
        Client client = Client.create();
        WebResource target = client.resource(getUrl);

        ClientResponse response = target.get(ClientResponse.class);
        weather = response.getEntity(String.class);
        return weather;
}
}

共有1个答案

尚棋
2023-03-14

我假设您希望从getweather返回的值是{“main”:“clouds”,“temp”:285.59}这里有一个解决方案-在pom中添加jackson依赖项

 <dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.8.7</version>
</dependency>

这里有一个方法,它去掉了其他详细信息,只返回main和temp,您可以编辑这个方法来添加更多的字段。

private static String getLessWeather(String weatherJson) throws IOException {
  Map<String, Object> lessWeatherMap = new LinkedHashMap<String, Object>();
  Map<String,Object> weatherMap = new ObjectMapper().readValue(weatherJson, LinkedHashMap.class);
  String main = (String) ((LinkedHashMap)((ArrayList)weatherMap.get("weather")).get(0)).get("main");
  lessWeatherMap.put("main", main);
  Double temp = (Double)((LinkedHashMap)weatherMap.get("main")).get("temp");
  lessWeatherMap.put("temp", temp);
  return new ObjectMapper().writeValueAsString(lessWeatherMap);
}
 类似资料:
  • 问题内容: 我正在尝试使用该模块从python脚本读取json文件。经过一番谷歌搜索后,我发现以下代码: json文件的路径和名称在哪里。我收到以下错误: 问题答案: 该代码用作变量名。它将阴影您导入的模块引用。为变量使用其他名称。 除此之外,代码在接受字符串的同时传递文件对象。 传递文件内容: 或使用接受类似文件的对象。

  • 问题内容: 只是因为一个简单,易于表达的陈述使我的脸上有些错误,所以我有点头疼。 我有一个名为strings.json的json文件,如下所示: 我现在想读取json文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了这个: 问题答案: 该方法(“ load”中没有“ s”)可以直接读取文件: 您正在使用方法,该方法仅用于 字符串 参数。 编辑:新消

  • 我有一个名为Strings.json的json文件,如下所示: 我想读取json文件,现在仅此而已。我发现了这些说法,但它不起作用: 控制台上显示的错误是: 已编辑 从更改为 得到了这个:

  • 一个看起来简单、容易的陈述却让我犯了一些错误。 我有一个名为strings.json的JSON文件,如下所示: 我想阅读JSON文件,目前仅此而已。我发现了这些语句,但它不起作用: 控制台上显示的错误如下: 如果我使用<code>json。加载而不是<code>json。加载,我得到以下错误:

  • 问题内容: 我有点头疼,只是因为一个简单,易于表达的陈述使我的脸上有些错误。 我有一个名为的文件,如下所示: 我现在想读取文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了: 问题答案: 该方法( 中没有 )可以直接读取文件: 你正在使用方法,该方法仅用于字符串参数。 编辑:新消息是一个完全不同的问题。在这种情况下,该文件中存在一些无效的。为此,我

  • 问题内容: 我正在尝试使用python SimpleHTTPServer构建一个简单的REST服务器。我在从帖子中读取数据时遇到问题。如果我做对了,请告诉我。 index.html文件 SimpleJson无法从POST消息中加载json。我对Web编码不熟悉,我甚至不确定我在做什么是否适合创建简单的REST API服务器。我感谢您的帮助。 问题答案: 感谢matthewatabet的klein想