From 479eb32f7eb26994d33076432214b79f3b4533b9 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Thu, 17 Mar 2022 16:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90json=E5=8F=8D=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/java/天气灾害预警/pom.xml | 1 + .../src/main/java/AppMain.java | 23 +++++++++- .../QWeatherDisasterWarning.java | 16 ++++--- .../QWeatherDisasterWarningItem.java | 27 ++++++----- .../QWeatherDisasterWarningRefer.java | 45 +++++-------------- .../WeatherDisasterWarningGrabber.java | 10 +++++ 6 files changed, 67 insertions(+), 55 deletions(-) diff --git a/code/java/天气灾害预警/pom.xml b/code/java/天气灾害预警/pom.xml index fbbc87e..3bfdadc 100644 --- a/code/java/天气灾害预警/pom.xml +++ b/code/java/天气灾害预警/pom.xml @@ -58,6 +58,7 @@ jackson-annotations 2.9.8 + 1.8 diff --git a/code/java/天气灾害预警/src/main/java/AppMain.java b/code/java/天气灾害预警/src/main/java/AppMain.java index 4cb78ef..459cc73 100644 --- a/code/java/天气灾害预警/src/main/java/AppMain.java +++ b/code/java/天气灾害预警/src/main/java/AppMain.java @@ -1,12 +1,31 @@ +import com.cpic.xim.disaster_warning.QWeatherDisasterWarning; import com.cpic.xim.disaster_warning.WeatherDisasterWarningGrabber; +import java.io.IOException; + public class AppMain { public static void main( String[] args ) { - String cityCode = "101091103"; + String cityCode = "101230201"; + String json; + QWeatherDisasterWarning warning; + json = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( cityCode ); + //json = "{\"code\":\"200\",\"updateTime\":\"2022-03-17T15:46+08:00\",\"fxLink\":\"http://hfx.link/2qg5\",\"warning\":[{\"id\":\"10109110320220317152846295440963\",\"sender\":\"秦皇岛市气象台\",\"pubTime\":\"2022-03-17T15:28+08:00\",\"title\":\"秦皇岛市气象台更新大风蓝色预警[Ⅳ级/一般]\",\"status\":\"update\",\"level\":\"蓝色\",\"type\":\"1006\",\"typeName\":\"大风\",\"text\":\"秦皇岛市气象台2022年03月17日15时26分继续发布大风蓝色预警信号:预计今天下午到夜间,我市沿岸海域和沿海地区仍有东北风5~6级,阵风7~8级,其他地区4~5级,阵风6级,请防范。\",\"related\":\"10109110320220315152346034785400\",\"urgency\":\"\",\"certainty\":\"\"},{\"id\":\"10109110320220317111800391536363\",\"sender\":\"河北省气象台\",\"pubTime\":\"2022-03-17T11:18+08:00\",\"title\":\"河北省气象台更新寒潮黄色预警[Ⅲ级/较重]\",\"status\":\"update\",\"level\":\"黄色\",\"type\":\"1005\",\"typeName\":\"寒潮\",\"text\":\"河北省气象台2022年03月17日11时17分继续发布寒潮黄色预警信号:受冷空气影响,目前全省大部分地区最低气温已下降6~8℃,局地下降8~12℃,预计今天夜间到19日,全省仍有明显降温过程,大部分地区最低气温继续下降3~5℃,西北部地区局地下降8℃以上;18日到19日早晨,北部地区最低气温降至-15~-5℃,其中坝上地区降至-20~-15℃,其他地区降至-5~0℃。请防范!\",\"related\":\"10109110320220316110012116815176\",\"urgency\":\"\",\"certainty\":\"\"},{\"id\":\"10109110320220316154314834852572\",\"sender\":\"昌黎县气象台\",\"pubTime\":\"2022-03-16T15:43+08:00\",\"title\":\"昌黎县气象台更新寒潮蓝色预警[Ⅳ级/一般]\",\"status\":\"update\",\"level\":\"蓝色\",\"type\":\"1005\",\"typeName\":\"寒潮\",\"text\":\"昌黎县气象台2022年03月16日15时39分继续发布寒潮蓝色预警信号:受冷空气影响,预计今天下午到18日,我县平均气温将继续下降6-8℃,17日白天最高气温为3℃,18日早晨最低气温可达-5℃,请防范。\",\"related\":\"10109110320220315155452789394523\",\"urgency\":\"\",\"certainty\":\"\"}],\"refer\":{\"sources\":[\"12379\"],\"license\":[\"no commercial use\"]}}"; - WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( cityCode ); + if ( json.isEmpty() == true ) + { + System.out.println( "获取天气信息失败!" ); + } + + try + { + warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json ); + } + catch ( IOException error ) + { + error.printStackTrace(); + } System.out.println( "1111" ); } diff --git a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarning.java b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarning.java index e45c45c..7b0d677 100644 --- a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarning.java +++ b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarning.java @@ -6,17 +6,19 @@ public class QWeatherDisasterWarning { public QWeatherDisasterWarning( String code, String updateTime, - String flLink, + String fxLink, Vector warning, QWeatherDisasterWarningRefer refer ) { this.code = code; this.updateTime = updateTime; - this.flLink = flLink; + this.fxLink = fxLink; this.warning = warning; this.refer = refer; } + public QWeatherDisasterWarning() {} + public String getCode() { return code; @@ -37,14 +39,14 @@ public class QWeatherDisasterWarning this.updateTime = updateTime; } - public String getFlLink() + public String getFxLink() { - return flLink; + return fxLink; } - public void setFlLink( String flLink ) + public void setFxLink( String fxLink ) { - this.flLink = flLink; + this.fxLink = fxLink; } public Vector getWarning() @@ -69,7 +71,7 @@ public class QWeatherDisasterWarning private String code; private String updateTime; - private String flLink; + private String fxLink; private Vector warning; private QWeatherDisasterWarningRefer refer; } diff --git a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java index 203ddba..b0b4e5c 100644 --- a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java +++ b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java @@ -2,8 +2,12 @@ package com.cpic.xim.disaster_warning; import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; + public class QWeatherDisasterWarningItem { + public QWeatherDisasterWarningItem() {} public QWeatherDisasterWarningItem( String id, String sender, String pubTime, @@ -14,7 +18,7 @@ public class QWeatherDisasterWarningItem String typeName, String text, String related, - String urgency, String centainy ) + String urgency, String certainty ) { this.id = id; this.sender = sender; @@ -26,8 +30,8 @@ public class QWeatherDisasterWarningItem this.typeName = typeName; this.text = text; this.related = related; - this.urgency = urgency; - this.centainy = centainy; + this.urgency = urgency; + this.certainty = certainty; } @Override @@ -51,8 +55,8 @@ public class QWeatherDisasterWarningItem that.type ) && Objects.equals( typeName, that.typeName ) && Objects.equals( text, that.text ) && Objects.equals( related, - that.related ) && Objects.equals( urgency, that.urgency ) && Objects.equals( centainy, - that.centainy ); + that.related ) && Objects.equals( urgency, that.urgency ) && Objects.equals( certainty, + that.certainty ); } @Override @@ -69,7 +73,7 @@ public class QWeatherDisasterWarningItem text, related, urgency, - centainy ); + certainty ); } public String getId() @@ -182,18 +186,19 @@ public class QWeatherDisasterWarningItem this.urgency = urgency; } - public String getCentainy() + public String getCertainty() { - return centainy; + return certainty; } - public void setCentainy( String centainy ) + public void setCertainty( String certainty ) { - this.centainy = centainy; + this.certainty = certainty; } private String id; private String sender; + @JsonFormat(pattern="yyyy-MM-dd'T'HH:mm") private String pubTime; private String title; private String status; @@ -203,5 +208,5 @@ public class QWeatherDisasterWarningItem private String text; private String related; private String urgency; - private String centainy; + private String certainty; } diff --git a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java index 963e10a..d225193 100644 --- a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java +++ b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java @@ -4,53 +4,28 @@ import java.util.Objects; public class QWeatherDisasterWarningRefer { - public QWeatherDisasterWarningRefer( String source, String license ) + public QWeatherDisasterWarningRefer() {} + + public String[] getSources() { - this.source = source; - this.license = license; + return sources; } - public String getSource() + public void setSources( String[] sources ) { - return source; + this.sources = sources; } - public void setSource( String source ) - { - this.source = source; - } - - public String getLicense() + public String[] getLicense() { return license; } - public void setLicense( String license ) + public void setLicense( String[] license ) { this.license = license; } - @Override - public boolean equals( Object o ) - { - if ( this == o ) - { - return true; - } - if ( o == null || getClass() != o.getClass() ) - { - return false; - } - QWeatherDisasterWarningRefer that = (QWeatherDisasterWarningRefer) o; - return source.equals( that.source ) && license.equals( that.license ); - } - - @Override - public int hashCode() - { - return Objects.hash( source, license ); - } - - private String source; - private String license; + private String[] sources; + private String[] license; } diff --git a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java index 98fb958..3b70e8d 100644 --- a/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java +++ b/code/java/天气灾害预警/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java @@ -1,5 +1,7 @@ package com.cpic.xim.disaster_warning; +import com.fasterxml.jackson.databind.ObjectMapper; + import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -107,4 +109,12 @@ public class WeatherDisasterWarningGrabber return json; } + public static QWeatherDisasterWarning convertWeatherDisasterWarning( String json ) + throws IOException + { + ObjectMapper mapper = new ObjectMapper(); + QWeatherDisasterWarning warning = mapper.readValue( json, QWeatherDisasterWarning.class ); + + return warning; + } }