Я написал веб-сервис и размещение в следующем URL http://192.168.2.34:8081/MyWebService/facility/universityРазбор JSON ответ с помощью Джексон
Ответ с данного веб-сервиса в формате JSON является:
{
"university": [
{
"emailOfPrincipal": "[email protected]",
"labLists": [
{
"instrumentLists": [
{
"instrumentId": "1",
"instrumentName": "Instrument 1"
},
{
"instrumentId": "2",
"instrumentName": "instrument 2"
}
],
"labId": "11",
"labName": "Lab 11"
},
{
"instrumentLists": [
{
"instrumentId": "3",
"instrumentName": "instrument 3"
},
{
"instrumentId": "4",
"instrumentName": "instrument 4"
}
],
"labId": "22",
"labName": "Lab 22"
}
],
"univAddress": "Kolkata",
"univId": "111",
"univName": "University 111",
"univPrincipalName": "Principal 1"
},
{
"emailOfPrincipal": "[email protected]",
"labLists": [
{
"instrumentLists": [
{
"instrumentId": "5",
"instrumentName": "Instrument 5"
},
{
"instrumentId": "6",
"instrumentName": "Instrument 6"
}
],
"labId": "33",
"labName": "Lab 33"
},
{
"instrumentLists": [
{
"instrumentId": "7",
"instrumentName": "Instrument 7"
},
{
"instrumentId": "8",
"instrumentName": "Instrument 8"
}
],
"labId": "44",
"labName": "Lab 44"
}
],
"univAddress": "Bangalore",
"univId": "222",
"univName": "University 222",
"univPrincipalName": "Principal 2"
},
{
"emailOfPrincipal": "[email protected]",
"labLists": [
{
"instrumentLists": [
{
"instrumentId": "9",
"instrumentName": "Instrument 9"
},
{
"instrumentId": "10",
"instrumentName": "Instrument 10"
}
],
"labId": "55",
"labName": "Lab 55"
},
{
"instrumentLists": [
{
"instrumentId": "11",
"instrumentName": "Instrument 11"
},
{
"instrumentId": "12",
"instrumentName": "Instrument 12"
}
],
"labId": "66",
"labName": "Lab 66"
}
],
"univAddress": "Hyderabad",
"univId": "333",
"univName": "University 333",
"univPrincipalName": "Principal 3"
}
]
}
Я пытаюсь преобразовать данные в формате JSON в объект Java, используя jackson api. Но получить ошибку. My Java Objects являются:
University.java
public class University {
private int univId;
private String univName;
private String univAddress;
private String univPrincipalName;
private String emailOfPrincipal;
private List<Laboratory> labLists = new ArrayList<>();
//... Getter and Setter Methods...
}
Laboratory.java
public class Laboratory {
private int labId;
private String labName;
private List<Instruments> instrumentLists = new ArrayList<>();
//... Getter and Setter Methods...
}
Instruments.java
public class Instruments {
private int instrumentId;
private String instrumentName;
private String bookingStatus;
private Date bookingFrom;
private Date bookingTo;
private Date requestedTime;
//... Getter and Setter Methods...
}
Клиент написанное:
public class ParseJSONData {
public static void main(String[] args) throws ClientProtocolException, IOException {
String URL = "http://192.168.2.34:8081/MyWebService/facility/university";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
// System.out.println(response);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity);
ObjectMapper mapper = new ObjectMapper();
University universities = mapper.readValue(result, University.class);
System.out.println(universities.getEmailOfPrincipal());
}
Ошибка я получаю говорит
Exception in thread "main" org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "university" (Class University), not marked as ignorable
at [Source: [email protected]; line: 1, column: 16] (through reference chain: University["university"])
Я знаю, что мои данные JSON возвращается список университетов. Но как сопоставить их в списке, о которых я не знаю. Любая помощь будет принята с благодарностью.
Ах ... Это круто .. Я не думал о создании дополнительного Java-объекта. Не могли бы вы также сообщить мне об этом и наоборот ... например, создав пользовательский десериализатор для университета? –
@SwarupSaha я обновил сообщение, но вы можете играть с десериализаторами так, как хотите. – varren