こんにちは、Java クライアント アプリケーションから lastFM API を呼び出そうとすると、以下の例外が発生します。クラスを自動生成するために jsonschema2pojo-maven-plugin を使用しました。緯度と経度のフィールドが必要です (それらを無視したくありません) 私が読み取ろうとしている json は次のとおりです: LastFM API Call。何か案は?
location: {geo:point: {geo:lat: "51.539739",geo:long: "-0.102676"}
スレッド「メイン」の例外 org.springframework.http.converter.HttpMessageNotReadableException: JSON を読み取れませんでした: 認識されないフィールド「geo:point」(クラス imis.athena.client.lastfm.dto.Location)、[Source で無視可能としてマークされていません] : sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@6391b687; 行: 1、列: 191] (参照チェーン経由: imis.athena.client.lastfm.dto.LastFMEventsDTO["イベント"]->imis.athena.client.lastfm.dto.Events["イベント"]->imis .athena.client.lastfm.dto.Event["会場"]->imis.athena.client.lastfm.dto.Venue["場所"]->imis.athena.client.lastfm.dto.Location["geo:点"]); ネストされた例外は org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "geo:point" (Class imis.athena.client.lastfm.dto.Location) です。[ソース: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@6391b687; で無視可能としてマークされていません。行: 1、列: 191] (参照チェーン経由: imis.athena.client.lastfm.dto.LastFMEventsDTO["イベント"]->imis.athena.client.lastfm.dto.Events["イベント"]->imis .athena.client.lastfm.dto.Event["会場"]->imis.athena.client.lastfm.dto.Venue["場所"]->imis.athena.client.lastfm.dto.Location["geo: point"]) org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readJavaType(MappingJacksonHttpMessageConverter.java:170) で org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.read(MappingJacksonHttpMessageConverter.java:162) で org.springframework .web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor. java:94) org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:492) で org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447) で org.springframework.web.client .RestTemplate.getForObject(RestTemplate.java:215) at imis.athena.client.lastfm.run.LastFMRunner.initiateApiRequests(LastFMRunner.java:53) at imis.athena.client.lastfm.run.LastFMRunner.initiateSpringContextAndRun(LastFMRunner.java) :45) imis.athena.client.lastfm.run.LastFMRunner.main(LastFMRunner.java:39) 原因: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 認識されないフィールド "geo:point" (Class imis. [ソース: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@6391b687; 行: 1、列:
問題のあるJavaクラスを編集
@JsonInclude(JsonInclude.Include.NON_NULL) @Generated("com.googlecode.jsonschema2pojo") @JsonPropertyOrder({ "city", "country", "geo:point", "postalcode", "street" })
パブリック クラスの場所 {
/**
*
*/
@JsonProperty("city")
private String city;
/**
*
*/
@JsonProperty("country")
private String country;
/**
*
*/
@JsonProperty("geo:point")
private Geo_point geo_point;
/**
*
*/
@JsonProperty("postalcode")
private String postalcode;
/**
*
*/
@JsonProperty("street")
private String street;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
*/
@JsonProperty("city")
public String getCity() {
return city;
}
/**
*
*/
@JsonProperty("city")
public void setCity(String city) {
this.city = city;
}
/**
*
*/
@JsonProperty("country")
public String getCountry() {
return country;
}
/**
*
*/
@JsonProperty("country")
public void setCountry(String country) {
this.country = country;
}
/**
*
*/
@JsonProperty("geo:point")
public Geo_point getGeo_point() {
return geo_point;
}
/**
*
*/
@JsonProperty("geo:point")
public void setGeo_point(Geo_point geo_point) {
this.geo_point = geo_point;
}
/**
*
*/
@JsonProperty("postalcode")
public String getPostalcode() {
return postalcode;
}
/**
*
*/
@JsonProperty("postalcode")
public void setPostalcode(String postalcode) {
this.postalcode = postalcode;
}
/**
*
*/
@JsonProperty("street")
public String getStreet() {
return street;
}
/**
*
*/
@JsonProperty("street")
public void setStreet(String street) {
this.street = street;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object other) {
return EqualsBuilder.reflectionEquals(this, other);
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperties(String name, Object value) {
this.additionalProperties.put(name, value);
}
}