1

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;
}
}

解決策を提案してください

ありがとう!

4

2 に答える 2