首页 > 编程语言 >Java: OpenWeatherMap json Deserialization of Java Objects

Java: OpenWeatherMap json Deserialization of Java Objects

时间:2023-12-15 20:57:27浏览次数:37  
标签:Java Deserialization System geovindu OpenWeatherMap println import public out

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 cwd
            PrintWriter 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();

    }
}

  

 

输出:

 

标签:Java,Deserialization,System,geovindu,OpenWeatherMap,println,import,public,out
From: https://www.cnblogs.com/geovindu/p/17904160.html

相关文章

  • 无涯教程-Java - int compareTo(String anotherString)函数
    此方法按字典顺序比较两个字符串。intcompareTo-语法intcompareTo(StringanotherString)这是参数的详细信息-anotherString  - 要比较的字符串。intcompareTo-返回值如果两个字符串相等则值为0,如果大于则>0,小于则<0。intcompareTo-示例publicclassTes......
  • java解析Xml文件
    iFile=getEditor().getEditorInput().getAdapter(IFile.class); Filefile=newFile(iFile.getLocation().toString()); Map<String,String>columnsMap=newHashMap<>(); if(file.exists()){ SAXReaderreader=newSAXReader(); try{......
  • 无涯教程-Java - int compareTo(Object o)函数
    此方法将此字符串与另一个对象进行比较。intcompareTo-语法intcompareTo(Objecto)这是参数的详细信息-o  - 要比较的对象。intcompareTo-返回值两个对象比较,如果相等,则返回0,如果大于后面对象,则返回>0,否则返回<0intcompareTo-示例publicclassTest{p......
  • Template Engines for Spring: FreeMarker | Java Server Pages | Thymeleaf | Jade4j
    Besidesthetemplateenginesdescribedsofar,therearequiteafewmoreavailablewhichmaybeused.Let’sreviewsomeofthembriefly.Velocity isanoldertemplateengine,whichisverycomplexbuthasthedisadvantagethatSpringhasdeprecateditsu......
  • Java面试小练(七)
    1).Java中Error与Exception的区别是什么?项目开发时自定义异常为什么要继承RuntimeException,而不是Exception?Java中的Error和Exception都是Throwable类的子类,但它们之间有一些区别。Error通常表示JVM或底层系统出现了无法恢复的问题,例如OutOfMemoryError、StackOverflowError......
  • Tomcat servelet javax 和 jakarta
    *[GitHub-apache/tomcat-jakartaee-migration:ApacheTomcatmigrationtoolforJakartaEE](https://github.com/apache/tomcat-jakartaee-migration)*[未来可期!但别再傻傻分不清javax和jakarta](https://baijiahao.baidu.com/s?id=1758965939027753195)*[[Solved]The......
  • Java Web开发阶段注解
    @Component标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean通过路径扫描来自动侦测以及自动装配到Spring容器中@Controller用于指示Spring类的实例是一个控制器,相对于实现Controller接口更加简单,使用Controller注解可以同时处理多个......
  • 无涯教程-Java - String Buffer & String Builder函数
    StringBuffer和StringBuilder类在需要对字符串进行大量修改时使用。与字符串不同,可以不停地修改StringBuffer和Stringbuilder类型的对象,而不会留下很多新的未使用对象。StringBuilder类是从Java5开始引入的,StringBuffer和StringBuilder之间的主要区别是StringBuilders......
  • java方法的定义与执行
    java中的方法在类中定义。定义方法格式:访问修饰符  返回值类型  方法名(参数列表){  ... 执行内容 ...  return返回值;}访问修饰符:表示方法在哪里能被访问到返回值类型:表示方法返回的数据的类型,如果没有返回值,就用void参数:可选的publicclassTest8{......
  • 秦疆的Java课程笔记:72 面向对象 instanceof和类型转换
    instanceof关键字,用于判断左边的实例对象是否是右边的类的实例。先创建4个类,父类Person,其子类Student和Teacher,测试类Application。在Application中测试instanceof语句://父类publicclassPerson{}//子类publicclassTeacherextendsPerson{}//子类publicclassStud......