1

こんにちは、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);
}

}

4

0 に答える 0