Java: OpenWeatherMap json Deserialization of Java Objects

openweathermap.json

{"coord": {"lon": 114.0683, "lat":22.5455},"weather":[ {"id": 803, "main":"Clouds", "description":"多云", "icon":"04d"}],"base":"stations","main": {"temp": 299.1, "feels_like":299.1, "temp_min":296.39, "temp_max":300.29, "pressure":1018, "humidity":79, "sea_level":1018, "grnd_level":1017},"visibility":10000,"wind": {"speed": 2.73, "deg":137, "gust":3.32},"clouds": {"all": 82},"dt":1702530001,"sys": {"type": 2, "id":2031340, "country":"CN", "sunrise":1702508106, "sunset":1702546869},"timezone":28800,"id":1795565,"name":"Shenzhen","cod":200
}

实体类

/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:05* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Wind.java  类* # explain   : 学习**/package Model;import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonProperty;/*** 风情况*/
public class Wind{/**** 风速*/public double speed;public int deg;public double gust;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:04* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Clouds.java  类* # explain   : 学习**/package Model;import java.util.Arrays;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonProperty;// import com.fasterxml.jackson.databind.ObjectMapper; // version 2.11.1
// import com.fasterxml.jackson.annotation.JsonProperty; // version 2.11.1
/* ObjectMapper om = new ObjectMapper();
Root root = om.readValue(myJsonString, Root.class); */
public class Clouds{public int all;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:09* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Coord.java  类* # explain   : 学习**/package Model;import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Coord{public double lon;public double lat;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:07* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Main.java  类* # explain   : 学习**/package Model;import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonProperty;/*** 气温情况*/
public class Main{/*** 温度  开尔文*/public double temp;/****/public double feels_like;/***最低温度 开尔文*/public double temp_min;/***最高温度 开尔文*/public double temp_max;/****/public int pressure;/***温度*/public int humidity;public int sea_level;public int grnd_level;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:06* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Sys.java  类* # explain   : 学习**/package Model;public class Sys{public int type;public int id;/*** 国家名称*/public String country;/*** 日出时间戳*/public int sunrise;/*** 日落时间戳*/public int sunset;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:05* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : Weather.java  类* # explain   : 学习**/package Model;/*** 天气情况*/
public class Weather{public int id;public String main;/*** 天气*/public String description;/*** icon id 天气图标*/public String icon;
}/*** encoding: utf-8* 版权所有 2023 涂聚文有限公司* 许可信息查看:* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2023 - 2023/12/15 - 20:06* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : javademo* # File      : WeatherInfo.java  类* # explain   : 学习**/package Model;import java.util.*;
import java.util.Arrays;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonProperty;/*** 天气主体实体类*/
public class WeatherInfo{/*** 地球经纬度类*/public Coord coord;/****/public ArrayList<Weather> weather;public String base;public Main main;public int visibility;/*** 风*/public Wind wind;public Clouds clouds;public int dt;public Sys sys;public int timezone;public int id;public String name;public int cod;
}

调用:

import Common.Env;
import Common.JsonHelper;
import BLL.UserBll;
import Model.WeatherInfo;
import Common.LanguageList;
import Common.FileHelper;
import BLL.openWeatherMap;
import Common.TimeHelper;public class Main {/**** @param args*/public static void main(String[] args){System.out.println("Hello java language world! 涂聚文!");try {String json = "{\"contacDetails\": {\n" + // JSON text in the file is written here"            \"firstName\": \"Ram\",\n"+ "            \"lastName\": \"Sharma\"\n"+ "    },\n"+ "    \"phoneNumbers\": [\n"+ "            {\n"+ "                \"type\": \"home\",\n"+ "                \"phone-number\": \"212 888-2365\",\n"+ "            }\n"+ "    ]"+ "}";// writing JSON to file:"JSONExample.json" in cwdPrintWriter pw = new PrintWriter("JSONExample.json");pw.write(json);pw.flush();pw.close();String fileurl=Paths.get("openweathermap.json").toString();File file = new File(fileurl);String strjson=FileHelper.ReaderMethod(file);//System.out.println(strjson);//Reader reader = Files.newBufferedReader(Paths.get("openweathermap.json"));ObjectMapper om = new ObjectMapper();WeatherInfo geovin = om.readValue(strjson, WeatherInfo.class);System.out.println("城市:"+ geovin.name);System.out.println("湿度:"+geovin.main.humidity + '%');System.out.println("天气:"+geovin.weather.get(0).description);System.out.println("日出:"+TimeHelper.gettime(geovin.sys.sunrise));System.out.println("日落:"+TimeHelper.gettime(geovin.sys.sunset));System.out.println("温度:"+TimeHelper.getKTC(geovin.main.temp));System.out.println("最低温度:"+TimeHelper.getKTC(geovin.main.temp_min));System.out.println("最高温度:"+TimeHelper.getKTC(geovin.main.temp_max));}catch (Exception ex){System.out.println(ex.getMessage());}System.out.println(LanguageList.zh_cn.getName());BLL.openWeatherMap weatherMap=new openWeatherMap();WeatherInfo geovindu=weatherMap.getObject("1795565");System.out.println("城市:"+ geovindu.name);System.out.println("湿度:"+geovindu.main.humidity + '%');System.out.println("天气:"+geovindu.weather.get(0).description);System.out.println("日出:"+TimeHelper.gettime(geovindu.sys.sunrise));System.out.println("日落:"+TimeHelper.gettime(geovindu.sys.sunset));System.out.println("温度:"+TimeHelper.getKTC(geovindu.main.temp));System.out.println("最低温度:"+TimeHelper.getKTC(geovindu.main.temp_min));System.out.println("最高温度:"+TimeHelper.getKTC(geovindu.main.temp_max));UserBll bll=new UserBll();UserBll.getCsvtoJson();UserBll.getUser();UserBll.getUserArry();UserBll.getWrite();System.out.println(Env.getEnv());System.out.println(Env.getColor());Env.getEnvList();}
}

输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FAQ:Inheritance 篇——What your mother never told you

文章目录 1、How can I set up my class so it won’t be inherited from&#xff1f;&#xff08;如何设置类&#xff0c;使它不会被继承?&#xff09;2、How can I set up my member function so it won’t be overridden in a derived class? &#xff08;如何设置成员函数…

cgal教程 3D Alpha Wrapping

文章目录 3D Alpha Wrapping (3D alpha 包裹)1 介绍2 方法2.1 算法2.2 保证 3 接口4 选择参数4.1 alpha4.2 Offset4.3 关于“双面”包裹的注意事项 5 性能6 例子 3D Alpha Wrapping (3D alpha 包裹) 原文地址: https://doc.cgal.org/latest/Alpha_wrap_3/index.html#Chapter_3D…

springcloudalibaba01

整合springcloud 和 springcloudalibaba&#xff0c;&#xff0c;&#xff0c; 版本对应关系 <dependencyManagement><dependencies><!--每个springcloud的工具都有一个版本每个springcloud alibaba的工具都有一个版本统一版本--> <!-- 整合…

vivado约束方法6

生成的时钟 定时约束向导建议在的输出上创建一个生成的时钟顺序单元&#xff0c;当它直接或通过驱动其他顺序单元的时钟引脚时一些互连逻辑。与PLL或MMCM不同&#xff0c;用户逻辑不能将主时钟&#xff0c;因此向导仅提供指定除法系数的选项&#xff0c;如中所示如下图所示&am…

音视频参数介绍

一、视频参数概念 单个视频帧&#xff1a;可以简单地理解成为一张图片 单个视频帧主要的参数概念&#xff1a; 分辨率&#xff1a; 分辨率是指图像或显示器上像素的数量&#xff0c;通常用横向像素数乘以纵向像素数表示。例如&#xff0c;1920x1080 表示宽度为1920像素&…

linux系统命令

linux常用命令 端口相关文件目录管理文件查看文件属性日志查看系统命令防火墙相关命令 端口相关 netstat -ntpl # 查询linux系统tcp端口情况 fuser -n tcp 80 # 查询80端口是否被占用 lsof -i:<port> lsof -i:9099 | grep java lsof -i :9099 | awk {print $2, $1, $3}文…

DTC 故障严重程度

文章目录 简介DTC严重性 位定义DTC 类别定义参考 简介 DTCSeverityMask&#xff08;DTC严重性掩码&#xff09;/ DTCSeverity&#xff08;DTC严重性&#xff09;包含了DTC严重性和DTC类别信息。 DTCSeverityMask&#xff08;DTC严重性掩码&#xff09;&#xff0f;DTCSeverit…

人工智能_机器学习066_SVM支持向量机_对偶问题转化_强对偶问题_弱对偶问题_弱对偶问题详解---人工智能工作笔记0106

上一节我们就得到了9,这个公式,这个公式要求,先去求maxL(x,lamada) ,也就是求,lamada是多少的时候,对应的, L(x,lamada) = f(x) + h(x) * lamada <=P 中的这个h(x) * lamada,最大,因为h(x)是小于0的也就是,lamada是什么的时候,h(x) * lamada最大,也就是越接近于0对吧. 然…

【Qt5】ui文件最后会变成头文件

2023年12月14日&#xff0c;周四下午 我也是今天下午偶然间发现这个的 在使用Qt的uic&#xff08;User Interface Compiler&#xff09;工具编译ui文件时&#xff0c;会生成对应的头文件。 在Qt中&#xff0c;ui文件是用于描述用户界面的XML文件&#xff0c;而头文件是用于在…

CMS—评论功能设计

一、需求分析 1.1、常见行为 1.敏感词过滤 2.新增评论&#xff08;作品下、评论下&#xff09; 3.删除评论&#xff08;作品作者、上级评论者、本级作者&#xff09; 4.上级评论删除关联下级评论 5.逻辑状态变更&#xff08;上线、下线、废弃...&#xff09; 6.上逻辑状态变更…

UG NX二次开发(C++)-库缺少需要的入口点的原因与解决方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、“库缺少需要的入口点”错误展示3、可能出现的原因与解决方案3.1 对于采用CTRL+U方式调用3.2 对于menu菜单下调用1、前言 在UG NX二次开发过程中,有时会遇到形形色色的bug,比如有个读…

【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)

​ 文章目录 一、基本概念二、机器学习的三要素1. 模型a. 线性模型b. 非线性模型 2. 学习准则a. 损失函数b. 风险最小化准则 3. 优化机器学习问题转化成为一个最优化问题a. 参数与超参数b. 梯度下降法梯度下降法的迭代公式具体的参数更新公式学习率的选择 c. 随机梯度下降批量…

(第5天)进阶 RHEL 7 安装单机 Oracle 19C NON-CDB 数据库

进阶 RHEL 7 安装单机 Oracle 19C NON-CDB 数据库(第5天) 真快,实战第 5 天了,我们来讲讲 19C 的数据库安装吧!19C 是未来几年 Oracle 数据库的大趋势,同样的作为长期稳定版,11GR2 在 2020 年 10 月份官方就宣布停止 Support 了,19C 将成为新的长期稳定版,并持续支持…

转载: iOS 优雅的处理网络数据

转载&#xff1a; iOS 优雅的处理网络数据 原文链接&#xff1a;https://juejin.cn/post/6952682593372340237 相信大家平时在用 App 的时候, 往往有过这样的体验&#xff0c;那就是加载网络数据等待的时间过于漫长&#xff0c;滚动浏览时伴随着卡顿&#xff0c;甚至在没有网…

找不到mfc100u.dll,程序无法继续执行?三步即可搞定

在使用电脑过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到mfc100u.dll”。mfc100u.dll是Microsoft Foundation Class&#xff08;MFC&#xff09;库中的一个版本特定的DLL文件。MFC是微软公司为简化Windows应用程序开发而提供的一套C类库。它包…

JVM虚拟机系统性学习-JVM调优实战之内存溢出、高并发场景调优

调优实战-内存溢出的定位与分析 首先&#xff0c;对于以下代码如果造成内存溢出该如何进行定位呢&#xff1f;通过 jmap 与 MAT 工具进行定位分析 代码如下&#xff1a; public class TestJvmOutOfMemory {public static void main(String[] args) {List<Object> list…

Python | 高斯分布拟合示例

什么是正态分布或高斯分布&#xff1f; 当我们绘制一个数据集&#xff08;如直方图&#xff09;时&#xff0c;图表的形状就是我们所说的分布。最常见的连续值形状是钟形曲线&#xff0c;也称为高斯分布或正态分布。 它以德国数学家卡尔弗里德里希高斯的名字命名。遵循高斯分布…

算法通关村第十二关—字符串转换(青铜)

一、转换成小写字母 LeetCode709.给你一个字符串s&#xff0c;将该字符串中的大写字母转换成相同的小写字母&#xff0c;返回新的字符串。 示例1&#xff1a; 输入&#xff1a;s"Hello" 输出&#xff1a;"hello" 示例2&#xff1a; 输入&#xff1a;s&qu…

C语言——输出魔方阵

目录 一、前言&#xff1a; 二、算法设计&#xff1a; 三、代码实现&#xff1a; 五、效果展示&#xff1a; 一、前言&#xff1a; 魔方矩阵又称幻方&#xff0c;是有相同的行数和列数&#xff0c;并在每行每列、对角线上的和都相等的矩阵。魔方矩阵中的每个元素不能相同。你…

外包干了4个月,测试技术退步明显

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入杭州某软件公司&#xff0c;干了3年的功能测试&#xff0c;当然有半年是被封在了家里&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我…