У меня есть строка JSON.Я конвертирую его, используя ObjectMapper Джексона.Это строка JSON.
{
"stat": "OK",
"response": {
"result": "auth",
"status_msg": "Account is active",
"devices": [
{
"device": "DPFZRS9FB0D46QFTM891",
"type": "phone",
"number": "XXX-XXX-0100",
"name": "",
"capabilities": [
"auto",
"push",
"sms",
"phone",
"mobile_otp"
]
},
{
"device": "DHEKH0JJIYC1LX3AZWO4",
"type": "token",
"name": "0"
}
]
}
}
Я определил объект как:
public class MyClass{
private String stat;
private Response response;
//getters and setters
}
Затем я определил ответ как:
public class Response{
private String result;
private String statusMsg;
private SortedSet<Device> devices = new TreeSet<Device>();
//getters and setters
}
Наконец, устройствоопределяется как:
public class Device implements Comparator<device>{
private String device;
private String number;
// etc variables
@Override
public int compareTo(Device o) {
// TODO Auto-generated method stub
return o.getNumber().compareTo(this.number);
}
Наконец, когда я использую маппер:
mapper.readValue(json.getBytes(), MyClass.class);
я получаю следующее исключение: org.codehaus.jackson.map.JsonMappingException: устройство не может быть приведено к java.lang.Comparable (через цепочку ссылок: Response ["response"] -> Response ["devices"])
Что я должен сделать для реализации массива устройств sortedset в этом случае?