Spring フレームワークを使用して、JSON データをローカル サーバーから Http GET 経由でオブジェクトに取得しています。ただし、オブジェクトは常に null (データが保存されていません)
- サーバーを再確認しましたが、正常に動作しています
- サーバーが戻ります
{"Propid":"61", "Proptitle":"3 bhk villa","Propdealer":"admin"}
- Jackson ライブラリを追加しました
- StringHttpMessageConverter を使用しましたが、JSON 文字列を返します
{"Propid":"61", "Proptitle":"3 bhk villa","Propdealer":"admin"}
例外をスローします:Could not extract response: no suitable HttpMessageConverter found for response type [com.aditya.master.classes.Prop] and content type [text/html;charset=UTF-8]
JSON 応答を解析するコードは次のとおりです。
URI targetUrl= UriComponentsBuilder.fromUriString("http://192.168.1.9/PinSpace/oauth/")
.path("request_access/")
.queryParam("query", "get_property")
.queryParam("access_token", auth_code)
.queryParam("prop_id", "61")
.build()
.toUri();
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(new MediaType("application", "json")));
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<Prop> responseEntity = restTemplate.exchange(targetUrl, HttpMethod.GET, requestEntity, Prop.class);
Prop result = responseEntity.getBody();
プロップクラスはこちら
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Prop {
@JsonProperty
private String Propid, Proptitle, Propdealer;
public String getPropid() {
return Propid;
}
public void setPropid(String propid) {
Propid = propid;
}
public String getProptitle() {
return Proptitle;
}
public void setProptitle(String proptitle) {
Proptitle = proptitle;
}
public String getPropdealer() {
return Propdealer;
}
public void setPropdealer(String propdealer) {
Propdealer = propdealer;
}
}
解決策を提案してください
ありがとう!