私はWebサービス(サーバー+クライアント)を書いています。サービスを作成でき、次のjsonが返されます
{
"cities": {
"city": [
{
"name": "New Delhi",
"population": "19M",
"telephonecode": "011"
},
{
"name": "Mumbai",
"population": "21M",
"telephonecode": "022"
},
{
"name": "Chennai",
"population": "10M",
"telephonecode": "044"
}
]
}
}
私のPOJOは
@XmlRootElement(name = "cities")
public class RestFulCities {
List<RestFulCity> restFulCityList;
@XmlElement(name = "city")
public List<RestFulCity> getRestFulCityList() {
return restFulCityList;
}
public void setRestFulCityList(List<RestFulCity> restFulCityList) {
this.restFulCityList = restFulCityList;
}
}
@XmlRootElement(name = "city")
public class RestFulCity {
private String name;
private String telephonecode;
private String population;
public RestFulCity(String name, String telephonecode, String population) {
this.name = name;
this.telephonecode = telephonecode;
this.population = population;
}
public RestFulCity(City city) {
this.name = city.getName();
this.telephonecode = city.getTelephonecode();
this.population = city.getPopulation();
}
@XmlElement
public String getName() {
return name;
}
@XmlElement
public String getTelephonecode() {
return telephonecode;
}
@XmlElement
public String getPopulation() {
return population;
}
}
ここで、この json を POJO にマップするクライアントを作成して、Java に入力された RestFulCities オブジェクトを取得したいと考えています。
私のクライアントコードは以下の通りです:
public class Client {
static final String REST_URI = "http://localhost:8080/springrest/rest/";
static final String CITIES = "cities";
public static void main(String[] args) {
String s = "";
WebClient plainAddClient = WebClient.create(REST_URI);
plainAddClient.path(CITIES).accept("application/json");
s = plainAddClient.get(String.class);
try {
RestFulCities citiesObject = new ObjectMapper().readValue(s, RestFulCities.class);
for(RestFulCity city : citiesObject.getRestFulCityList()) {
System.out.println("----------START---------");
System.out.println(city.getName());
System.out.println(city.getPopulation());
System.out.println(city.getTelephonecode());
System.out.println("---------END----------");
}
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
しかし、問題は次のとおりです。次の例外が発生しています
org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "cities"(Class com.techartifact.example.spring.model.RestFulCities), not marked as ignorable
at [Source: java.io.StringReader@1d35bf2; line: 1, column: 12] (through reference chain: com.techartifact.example.spring.model.RestFulCities["cities"])
以下のプロパティを使用している場合:
@JsonIgnoreProperties(ignoreUnknown = true)
私は例外を取得しませんが、私のrestFulCityListはnullであり、望ましくありません
助けてください